首页 > 代码库 > 函数内部的函数中的this都是指向window

函数内部的函数中的this都是指向window

刚看到一个问题关于this的,

1   var name="the window";2     var object={3         name:"silence",4         packname:function(){5             return this.name;6         }7     }8     console.log(object.packname());

一般而言,在Javascript中,this指向函数执行时的当前对象。这个this指object。输出结果为 silence

改变一下

1 var name="the window";2     var object={3         name:"silence",4         packname:function(){5             return this.name;6         }7     }8     var show=object.packname;9     console.log(show());

当没有明确的执行时的当前对象时,this指向全局对象window。

这里show=object.packname;show();这里show没有明确的指明执行对象,所以等同于 window.show();结果是 the window

再改一下

 1   var name="the window"; 2     var silence={ 3         name:"silence", 4         packname:function(){ 5             return this.name; 6         } 7     } 8     var seraph={ 9         name:"seraph",10         packname:function(){11             var fun=silence.packname;12             return fun();13         }14     }15     console.log(seraph.packname());

与2类似,fun();得到the window,fun()可以看出函数内部的函数指向window。我是这样理解的。

 

函数内部的函数中的this都是指向window