활용define_setter__및define_getter__ 동적 객체 속성 정의
902 단어 동적 속성 값
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);