如何重新加载对象以使用新值进行更新



我刚刚得到这个查询/问题,而写QUnits。我不确定这是否可能。

如何重载/更新对象或如何使对象静态动态?

> var rollNum = 459;
undefined
> var classObj = { studentId : rollNum };
undefined
> classObj
{ studentId: 459 }
> rollNum = 125 ;
125
> classObj
{ studentId: 459 }
>

我在这里期望的行为是,classObj现在应该将studentId加载为125,因为根据我的对象定义rollNum更新为125

根据我的理解,当前JS的行为,解释器开始评估的那一刻,它需要变量的值,并在内存中创建引用,JS对象和变量之间的连接提供的值消失了。

并且,我希望该连接始终保持,一旦对象定义,我想保留定义,每当我尝试访问对象时,我希望JS解释器读取内存中变量的更新/当前值,然后将其存储在对象中,然后返回它。

这种行为可能吗?

你可以使用getter:

var classObj = {
get studentId() {
return rollNum;
},
}

这个函数在studentId被访问时被调用。

var rollNum = 459;
var classObj = { get studentId() { return rollNum;} };
console.log(classObj);
rollNum = 125 ;
console.log(classObj);

相关内容

  • 没有找到相关文章

最新更新