定义

宿主对象 (host object)

除了内建对象,还可以在js脚本里使用一些已经预先定义好的其他对象。这些对象不是由js语言本身而是由它的运行环境提供的。具体到 Web 应用,这个环境就是浏览器。由浏览器提供的预定义对象被称为宿主对象(host object)。 宿主对象包括 Form、Image和Element等。我们可以通过这些对象获得关于网页上表单、图像和各种表单元素等信息。

Tips

  • 函数在行为方面应该像一个自给自足的脚本,在定义一个函数时, 我们一定要把它内部的变量全都明确地声明为局部变量。

  • DOM并不是与网页结构打交道的唯一技术。还可以通过CSS告诉浏览器如何显示一份文档的内容。

  • element.setAttribute 实际完成了两项操作

    创建这个属性

    设置这个属性的值

代码

用 getElementsByTagName 实现 getElementsByClassName

    function getElementsByClassName(node, classname){
      if(node.getElementsByClassName){
        return node.getElementsByClassName(classname)
      }else {
         var results = new Array();
         var elems = node.getElementsByTagName('*');
        for(var i = 0; i < elems.length; i++) {
          if(elems[i].className.indexOf(classname) !== -1){
              results[results.length] = elems[i];
          }
        }

        return results;
      }
    }

要解决的问题

  • 当在最外层定义 var a = 1; 时,a === window.a。 当定义函数 function f1() {} 时, f1 === window.f1。
  • 当在函数里面定义时呢?
          function f(){
              var a = 1;
    
              function b(){
    
              }
          }