我刚刚得到这个查询/问题,而写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);