지금 자바스크립트 인사이드라는 책을 보고 있고


캡슐화 부분 보고 있는데..


자바는 몇몇개 빼곤 졸라 쉽게 햇는데 자바스크립트는 존나 병신 같이 어렵다


여튼... 내가 이해가 안가는게 예문 코드 중에 아래 같은게 있는데




var Person = function (arg) {

var name = arg ? arg : "zzoon";

var Func = function() {};

Func.prototype = {

getName : function() {

return name;

},

setName : function(arg){

name = arg;

}

};

return Func;

}();



var you = new Person();

var me = new Person();


me.setName("me");

you.setName("you");


console.log(you.getName()); // 출력결과 you

console.log(me.getName()); // 출력결과 you



Func가 클로저 되고 각 getName이랑 setName이 스코프 체인 리스트 중에 선행 실행된 함수 객체를 '참조'하고 있어서


you 객체나 me 객체나 get 함수를 호출했을 때 마지막으로 set함수로 스코프 체인에서 참조하고 있는 객체 프로퍼티 값 바꿔준게 출력되는건 알겠는데


이러면 싱글톤으로써 의미 말고 의미가 있나?


정보 은닉도 살리면서 캡슐화에 각 객체 값을 독립적으로 만들려면 어떻게 해야하지..?


외부에 함수 하나 더 만들어서 반환값들 따로 따로 객체에 담아야하나?