0
나는 스 니펫을 발견 했으므로 직설적 인 방법으로 쓰여질 수 있을지 의심 스럽다. 객체가 두 번째 예에서는 함수 내에서 생성 된 이유함수의 개인 함수에 대한 참조로 객체 만들기
var printer = (function() {
var printerInstance;
var obj = {
f1: function() {},
f2: function() {}
};
return {
getInstance: function() {
if(!printerInstance) {
printerInstance = obj;
}
return printerInstance;
}
};
})();
그리고
var printer = (function() {
var printerInstance;
function create() {
function f1() {}
function f2() {}
return {
f1: f1,
f2: f2
}
}
return {
getInstance: function() {
if(!printerInstance) {
printerInstance = create();
}
return printerInstance;
}
};
})();
내가 이해하지 않았다 : 누군가가 아래 두 조각 사이의 차이가 무엇인지 말해 주 시겠어요. 명확히하십시오.
두 예제 모두 인스턴트 함수 어플리케이션은 새로운 범위를 생성하여 'printerInstance','obj' 및'create'가 주변 범위로 유출되지 않도록합니다. – Sylwester