我希望做类似于这样的事情:
当然,这并不起作用,因为当o.y被返回时,它已经被求值。我正在寻找一种返回作为getter的变量的方法。以下示例让我对此有了希望:
我想实现这样的功能:
function x(){
var o = {};
o.__defineGetter__('y', function(){
return new Date();
});
return o.y;
}
var z = x();
console.log(z);
//Wait 1 second
console.log(z); //Date should be one second past the last printing
当然,这并不起作用,因为当o.y被返回时,它已经被求值。我正在寻找一种返回作为getter的变量的方法。以下示例让我对此有了希望:
function x(context){
//Bind the getter to the passed in scope
context.__defineGetter__('y', function(){
return new Date();
});
}
x(this);
console.log(y);
//Wait 1 second
console.log(y); //Date is one second past last printing
有人尝试过这样做吗?
是的,我熟悉使用不同语法建模类似行为的其他方法。我只是希望这个特定的语法能够适用于一个特殊的场景。
谢谢,
克里斯