失去了背景。关闭

时间:2015-01-07 15:44:37

标签: javascript

var user = {
    firstName: "Alex",
    sayHi: function() {
        alert(this.firstName);
    }
};

setTimeout(function() {
    user.sayHi(); // Alex
}, 1000);

他们说用户从关闭中获取。

我是否正确理解user.sayHi方法包装在一个在全局上下文中声明并且可以访问用户对象的函数中?这形成了一个封闭?

1 个答案:

答案 0 :(得分:1)

user.sayHi()包含在一个匿名函数中,该函数位于全局范围内。这个匿名函数创建了一个闭包,虽然在这种情况下闭包没有任何后果。由于匿名函数位于全局范围内,而用户位于全局范围内,因此匿名函数可以访问用户对象。