我想我有這個想法,但我希望cleary有這個解釋 - 究竟是這兩個JavaScript片段之間的區別是什麼?這兩個不同的JavaScript聲明的目的是什麼?
;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);
};
})();
一個正在執行的();最後,另一個不是。當我做新的Person1(),sayHello()或新的Person2()。sayHello(); - 他們留下了什麼?根據我的理解,後者是一個在瀏覽器被執行時執行的閉包,但我還沒有完全理解它的含義。謝謝你的幫助!
更新:我錯誤地省略Person2閉包中的return關鍵字。然而,我沒有解決這個問題,因爲這些答案對描述這樣做的含義非常有幫助:)
謝謝先生。簡要回答我想知道的內容:這完全取決於範圍。 – TimDog 2010-05-12 15:02:30