2011-09-24 3 views
0

개인 변수를 결코 이해하지 못했습니다. 나는 그것을 만드는 법을 알고 있지만 (모듈 패턴을 사용하여, 오른쪽), 나는 그들에 대해 너무 비공식적 인 것을 보지 못한다. jsFiddle에 대한 설명을했습니다. http://jsfiddle.net/fufWX/변수가 비공개인지 어떻게 알 수 있습니까?

_private 변수가 실제로 외측 스코어에서 액세스 할 수있을 때 개인용임을 설명 할 수 있습니까? 그리고 무엇이 사적인 변수에 대한 사용입니까? 감사.

var Module = (function() { 
    var _private = "My private variable"; 
    return { 
     get: function() { return _private; }, 
     set: function(e) { _private = e; } 
    }; 
})(); 

var obj = {}; 


// How is that variable private when I can simply obtain it like this: 
obj.get = Module.get; // ?? 
obj.set = Module.set; // ?? 

obj.get(); // "My private variable" 
+2

단지에 연결하는 대신 문제의 코드를 기입하십시오. 고맙습니다. – user113716

답변

4

JavaScript에는 진정한 사적인 변수가 없습니다. 지역 변수 만 있습니다. 익명 함수의 외부에, 그것은 당신이 제공 한 getset 기능을 통해서만 접근, 때문에 예에서

_private은 "개인"입니다. 이러한 기능이 없으면 _private은 익명 기능 외부에서 완전히 액세스 할 수 없습니다.


추가 읽기 :

관련 문제