JavaScript 闭包机制详解及实例代码(2)

this 对象在 JS 中是在函数运行时基于函数的执行环境绑定的。而匿名函数的执行环境具有全局性,也就是说,在匿名函数中,this 对象通常指向 window。

var name = "Tom"; var person = { name : "Jack", sayName : function(){ return (function(){ return this.name; })(); } } person.sayName(); //Tom

上面在闭包中访问 this.name,其中的 this 对象并非取得自身或是 person 的 this 对象,而是指向 window。

如果需要在闭包中访问外部函数的 this 对象,那么,可以在外部函数中定义一个变量,将 this 对象传给该变量。

var name = "Tom"; var person = { name : "Jack", sayName : function(){ var self = this; return (function(){ return self.name; })(); } } person.sayName(); //Jack

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzdpds.html