gpt4 book ai didi

javascript - 我如何惰性评估 javascript 对象上的字段?

转载 作者:行者123 更新时间:2023-12-03 23:48:34 24 4
gpt4 key购买 nike

我想知道是否可以执行以下操作:

var obj = {
counter: (function(){
if(!this.val){ this.val = 0; }
this.val += 1;
return this.val;
})();
};

console.log(obj.counter); //should output 1
console.log(obj.counter); //should output 2
console.log(obj.counter); //should output 3
...

有没有办法从这样的对象中获取一个字段,以便它在每次访问时重新评估一个函数?

最佳答案

你可以使用 setter/getter :

var obj = {};
Object.defineProperty(obj,"counter",{
get: function() {
this.val = this.val || 0;
this.val++;
return this.val;
}
});

console.log(obj.counter); // 1
console.log(obj.counter); // 2
console.log(obj.counter); // 3

关于javascript - 我如何惰性评估 javascript 对象上的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24434852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com