ES5 标准 的例子
var obj = {
get foo() {
return Math.random() > 0.5 ? 'foo' : 'bar';
}
};
var sum = '';
for(var i=1; i<10; i++) {
sum += obj.foo + "\n"; //'foo' or 'bar' randomly ?
}
alert(sum);
最终弹出的10行字符串都是随机出现的
foo foo foo bar bar bar foo foo foo |
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);