我有一個對象/函數/閉包(我認爲這三個都是?),我需要將它的不同實例應用於頁面上的多個元素。如何製作閉包功能的副本(新實例)?
var NS = NS || {};
NS.PLAJAX = function(){
var pub = {};
var self = this;
pub.Init = function(FormRef){
// do stuff
};
self.aPrivateFunction = function(){
// do stuff
}
return pub;
}();
// Apply a *copy* to each element with the given class
$(function(){
$('.el-form-wrapper').each(function(index, Element){
// Attempt #1
NS.PLAJAX.Init(Element); // Doesn't make copies!
//OR, Attempt #2
var Newbie = new NS.PLAJAX(); // Throws a "not a constructor" error
Newbie.Init(Element);
});
});
如何在每個元素上獲得此閉包/對象的新實例?
但是,如果你這樣做是方式,'PLAJAX'不再是封閉。 – Nick
@Nick:在PLAJAX的每個實例中仍然創建封閉函數'aPrivateFunction'。你爲什麼認爲這不是封閉?你認爲封閉是什麼? – slebetman
我認爲我很混淆封閉與自我執行的函數,如'函數DoSomething(){}();' – Nick