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