我有以下 JavaScript:
var calc = {
getMem: function(){
return mem;
},
mem:0,
add: function (a,b){
mem = a*b;
return a*b;
},
}
当我打电话时
calc.getMem();
之后我就得到了一个ReferenceError
但是,当我打电话时
calc.add(3,2);
calc.getMem();
我收到了想要的结果。
显然我错过了这个,所以我将 getMem 更改为
getMem: function(){
return this.mem;
}
我的问题是:为什么当我第一次调用 add 时它在初始状态(没有这个)下工作?
最佳答案
当您调用cal.add
时,您正在创建一个全局变量mem
。所以看起来它是有效的,因为 getMem 然后尝试访问该全局。但这可能不是您想要的。如果您在 add()
之前调用 getMem()
,它仍然会尝试访问全局 mem
,但它尚未定义,因此出现错误。
var calc = {
getMem: function(){
return mem;
},
mem:0,
add: function (a,b){
mem = a*b;
return a*b;
},
}
calc.add(2, 4)
console.log(mem) // available globally
关于javascript - 引用错误: Object prop not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52318382/