개체/함수/클로저가 있습니다. (나는 이것이 모두 3 가지라고 생각합니까?) 페이지의 여러 요소에 개별 인스턴스를 적용해야합니다.클로저 함수의 복사본 (새 인스턴스)을 만드는 방법은 무엇입니까?
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
나는'function DoSomething() {}(); '과 같은 자체 실행 함수와 클로저를 혼동하고 있다고 생각한다. – Nick