【发布时间】:2011-02-18 16:08:26
【问题描述】:
我想我已经弄清楚了,但我希望清楚地解释这一点——这两个 javascript sn-ps 之间究竟有什么区别?
;Person1 = (function() {
var FirstName = 'Hello';
var LastName = 'World';
this.sayHello = function() {
alert(FirstName + ' ' + LastName);
};
});
;Person2 = (function() {
var FirstName = 'Hello';
var LastName = 'World';
this.sayHello = function() {
alert(FirstName + ' ' + LastName);
};
})();
用 () 执行一个;最后,另一个不是。当我执行 new Person1().sayHello() 或 new Person2().sayHello(); 时,它们都按预期执行; ——是他们留下的吗?据我了解,后者是一个在浏览器读取时执行的闭包,但我还没有完全理解它的含义。感谢您的帮助!
更新:我错误地在 Person2 闭包中遗漏了 return 关键字。但是,我没有解决这个问题,因为答案对于描述这样做的含义非常有帮助:)
【问题讨论】:
标签: javascript closures