ReferenceError:未定义对象属性

Vanice

我有以下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然后尝试访问该全局变量。但这可能不是您想要的。如果您在调用getMem()之前add()仍在尝试访问global 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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章