我有一个对象/函数/闭包(我认为这三个都是?),我需要将它的不同实例应用于页面上的多个元素。如何制作闭包功能的副本(新实例)?
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