在Javascript内部函数的上下文中使用`this`的困惑

时间:2016-08-04 03:07:41

标签: javascript

我有以下代码

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中读到,这是它的父对象的范围。所以这里thisself将返回变量bar,但为什么内部函数中的那个返回undefined

谢谢

0 个答案:

没有答案