如何在每次引用对象时强制对象中的函数进行求值?

时间:2018-06-15 19:03:04

标签: javascript object

如果我创建了一个对象,例如:

var obj = {
   val1: 1,
   val2: Math.random()
   };

当实例化对象时,立即评估Math.random()并将结果分配给obj.val2。

以后对obj.val2的每次引用都将返回此初始随机数。

有没有办法在每次引用对象时强制重新评估此函数?所以每次对obj.val2的引用都会重新运行Math.random(),产生一个新生成的随机数?

1 个答案:

答案 0 :(得分:7)

您可以定义getter,这样每次访问该属性时,您都可以运行一个每次都返回一个新值的函数。

var obj = {
   val1: 1,
   get val2() {
      return Math.random();
   }
};
   
console.log(obj.val2)
console.log(obj.val2)