你並不真正需要的是新來的,下面是一個代碼來實現你想實現什麼是正確的方式。 此外,be really careful while using new, if used unwisely it can start clobbering your Global variable
,如果你想使用新的,約翰Resig的有如何做到這一點的正確方法,通過約翰Resig的 http://ejohn.org/blog/simple-class-instantiation/
http://jsfiddle.net/PzLKy/2/
var moduleClass = (function() {
var a =5;
return {
setA: function (inA) {
a=inA;
} ,
getA: function() {
alert(a);
}
};
})();
var instance = moduleClass;
instance.setA(8);
instance.getA();
更多閱讀這篇文章一個非常好的交代編輯: contactmatt是正確的,絕對不要害怕使用構造函數,但這裏有一些你需要知道的東西
來自John Resig在第一段中提到的文章,
想這是你的代碼
function User(first, last){
this.name = first + " " + last;
}
var user = new User("John", "Resig");
user.name // John Resig
var user2 = User ("first","last");
user2.name //undefined, also this would pollute your current scope
如果調用構造函數,你不會得到任何形式的指示,可以是一個噩夢般的調試。
的方式來解決,這是
function User(first, last){
if (this instanceof User) {
this.name = first + " " + last;
} else
return new User(first, last);
}
得出結論,
所以,如果你覺得構造是你的問題的最好方法,使用它。但請注意,John的簡單類實例化也是一種非常有用的模式,試圖通過它,他還解釋了泛型構造函數。
如果您想在實例化時傳遞參數,請使用構造函數而不是文字。 – dandavis
代碼中沒有涉及類的構造。你只需要用模塊模式生成一個單例。你想要什麼* - 只有這樣我們才能告訴你代碼是正確的? – Bergi
我希望能夠聲明新的實例並傳遞不同的值。 我不想做特定的事情,我只是在學習。 – Petran