我正在編寫一個JavaScript庫,其中我想要一些方法和屬性public和other private。以下內容似乎是一個很好的方法,同時將所有內容都包裝到單個對象中。在JavaScript靜態實例上使用構造函數
(function (window) {
var Thing = function() {
// private var
var variable = "value";
return {
// public method
method:function() {
alert(variable);
}
}
}();
window.Thing = Thing;
})(window);
Thing.method();
這很好。 (主要從here抓起)。
但是,我仍然希望能夠使用Thing
的構造函數傳遞一些參數。
有無論如何我可以在return語句中提供構造函數,或者使用prototype來覆蓋構造函數嗎?所以,我可以打電話:
Thing(stuff);
現在,如果我嘗試,它會導致:
Uncaught TypeError: Property 'Thing' of object [object DOMWindow] is not a function
這是有道理的,因爲它不是返回本身,而是理想。我希望能夠調用構造函數。
或者,這是否只是baaaad,我應該避開一些或全部?
這是最接近我所希望的答案,謝謝。不過,我仍然真的希望能夠靜態訪問方法,而不是將對象分配給變量。最後,我決定不採用問題中的方法,而是將匿名函數保留在內部,而不是包裹在對象Thing中。 – bdls