我有以下代码
var myObject = {
foo: "bar",
func: function() {
var self = this;
console.log("outer func: this.foo = " + this.foo);
console.log("outer func: self.foo = " + self.foo);
(function() {
console.log("inner func: this.foo = " + this.foo);
console.log("inner func: self.foo = " + self.foo);
}());
}
};
myObject.func();
以下功能的输出是
outer func: this.foo = bar
outer func: self.foo = bar
inner func: this.foo = undefined
inner func: self.foo = bar
我已经在Mozilla MDN中读到,这是它的父对象的范围。所以这里this
和self
将返回变量bar
,但为什么内部函数中的那个返回undefined
谢谢