활용define_setter__및define_getter__ 동적 객체 속성 정의

902 단어 동적 속성 값
  • ES5 표준의 예
  •   var obj = {
    		   get foo() {
    		 return Math.random() > 0.5 ? 'foo' : 'bar';
    	  }
       };  
       var sum = '';
       for(var i=1; i<10; i++) {
           sum += obj.foo + "
    "; //'foo' or 'bar' randomly ?        }    alert(sum);

    마지막에 나오는 10줄 문자열은 모두 무작위로 나타납니다
    foofoofoobarbarbarfoofoofoo
     2. 너도 스스로 쓸 수 있다.
     
    				function Tester(str) {
    
    					var colors = {
    						red : ['red_', '_r'],
    						green : ['red_', '_r'],
    						gray : ['gray_', '_g']
    					};
    
    					var self = this;
    
    					for(var i in colors) {
    						var ars = colors[i];
    						self.__defineGetter__(i, function() { 
    							var rs = ars[0] + str + ars[1]; 
    							  return rs;
    						});
    					} 
    				}
    
    				var t = new Tester("Hello!");
    				     alert(t.red);

    좋은 웹페이지 즐겨찾기