2017년 4월 13일 목요일

[JavaScript] 자바스크립트에서 private변수 사용하기

자바스크립트에서는 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는 생성자 외부로 노출되지 않는다.

댓글 없음:

댓글 쓰기