자바스크립트에서는 private을 넣는다고 private 변수가 되지 않는다.
var my obj = {
myprop: 1,
getProp: function() { return this.prop; }
}
console.log(myobj.myprop);
1
console.log(myobj.getProp());
1
다른 방법으로도 한번 만들어보자.
function G() {
this.name '지';
this.age = function() { return 1; }
}
var g = new G();
console.log(g.name);
'지'
console.log(g.age());
1
Solution
자바스크립트는 별도의 syntax가 없어도 private변수를 만들 수 있다.
function new_G() {
var name = 'G의 숨은 뜻은 지메일'; // private
this.getName = function() { return name; };
}
var secret_g = new new_G();
console.log(secret_g.name);
undefined
console.log(secret_g.getName());
'G의 숨은 뜻은 지메일'
생성자가 함수의 클로저를 만들고 그 클로저 스코프 안에 속하는 변수들을 만든다. closure scope는 생성자 외부로 노출되지 않는다.
댓글 없음:
댓글 쓰기