为什么这里的“this”对于对象的成员函数内部的自执行代码(窗口/全局范围)不同?
foo = "Window_foo"
var myobj = {
foo: 'Object_bar',
func: function(){
var self = this;
console.log("outer this.foo " + this.foo);
console.log("outer self.foo " + self.foo);
(function(){
console.log("inner this.foo " + this.foo);
console.log("inner self.foo " + self.foo);
}());
}
}
myobj.func();
我得到以下输出:
outer this.foo Object_bar
outer self.foo Object_bar
inner this.foo Window_foo
inner self.foo Object_bar
func 是 myObj 对象的成员函数。其中的“this”必须是 myObj 对象。那么它内部的自执行函数如何将“this”作为窗口对象?