高级编程三——this对象

来源:互联网 发布:star算法 opencv3 编辑:程序博客网 时间:2024/06/05 09:08
<script>
          varname = "My Window";
          varobject = {
                name: "My Object",
                getNameFunc: function(){//函数在被调用时会自动取得两个特殊变量:this和arguments
                      console.log(this.name);//"My Object"
                      returnfunction(){//内部函数不可以直接访问外部函数中的特殊变量:this和arguments
                           returnthis.name;//此处的this访问不到外部函数运行时的直接调用者object
                      }
                }
           }
           console.log(object.getNameFunc()());//"The Window"(非严格模式下)
</script>
<script>
varname = "My Window";
          varobject = {
                name: "My Object",
                getNameFunc: function(){
                      varthat = this;//将对this的引用保存到另一个闭包函数能够访问的变量中。
                      returnfunction(){
                           returnthat.name;//内部函数被调用时,遇到变量(除了this和arguments),会在私有作用域和外部作用域查找并访问。
                      }
                }
           }
           console.log(object.getNameFunc()());//"My Object"
</script>
     <script>
          varname = "My Window";
           varobject = {
                name: "My Object",
                getName: function(){
                      returnthis.name;
                }
           }
           console.log(object.getName());//"My Object"
           console.log((object.getName)());//"My Object"
          console.log((object.getName= object.getName)());//"My Window";此处的变量object.getName被赋值为一个函数。匿名函数的this默认指向的是window;(非严格模式下)
     </script>