如果我创建了一个对象,例如:
var obj = {
val1: 1,
val2: Math.random()
};
当实例化对象时,立即评估Math.random()并将结果分配给obj.val2。
以后对obj.val2的每次引用都将返回此初始随机数。
有没有办法在每次引用对象时强制重新评估此函数?所以每次对obj.val2的引用都会重新运行Math.random(),产生一个新生成的随机数?
答案 0 :(得分:7)
您可以定义getter,这样每次访问该属性时,您都可以运行一个每次都返回一个新值的函数。
var obj = {
val1: 1,
get val2() {
return Math.random();
}
};
console.log(obj.val2)
console.log(obj.val2)