在使用閉包的對象上調用new時,從我所瞭解的閉包設置實例化中,其中私有變量將是'class'的靜態屬性。在JavaScript中使用閉包調用新對象
例:
var testClass=(function(){
var self={...properties...};
return function(){
return {
someFunc: (function(){
var self={...other properties...}
return {
self: self
};
}())
};
};
}());
var newObject=new testClass();
所以,如果我需要someFunc實例作爲的TestClass的屬性我可以用上面的語法存儲?在每次創建新的testClass實例時,將會實例化someFunc中的'var self',或者將閉包作爲一次處理,其中所有實例都是instanceA.someFunc.self == instanceB.someFunc.self if instanceA = new testClass();和instanceB = new testClass();
希望這是有道理的。我還沒有測試過它還沒有看到
是的,忘了添加返回功能。我改變了這個例子。道歉。 – 2014-11-03 02:56:55
@MagicLasso - 這是一種痛苦。我診斷你的問題,並完全記錄在一個jsFiddle中,然後你改變代碼。無論如何,我試圖添加一個有關您更改的代碼的答案。 – jfriend00 2014-11-03 02:59:36
哈哈哈對不起。我正在jsfiddle atm建設一個。所以內心的自我會被實例化爲新的或... – 2014-11-03 03:00:59