javascript - 创建 js 对象时,为什么不能在另一个定义的函数中使用一个定义的函数?

标签 javascript

代码是这样的

var ob = {
    a: function() {
        b()
    },
    b: function() {
        console.log("hi")
    }
};

如您所见,您不能这样做

ob.a() //returns error

谁能详细解释一下原因吗?

最佳答案

因为 b 在当前作用域中不存在(在本例中是全局作用域)。

但是,这有效:

var ob = {
  a: function () {
    this.b()
  },
  b: function () {
    console.log('hi')
  }
};

因为this引用了ob对象。

关于javascript - 创建 js 对象时,为什么不能在另一个定义的函数中使用一个定义的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31891578/

相关文章:

javascript - 如何在 React Native 中对组件数组进行排序?

javascript - 如何在 jquery 中使用额外信息进行重定向?

javascript - 如何在 Javascript 中使用正则表达式从字符串中获取变量?

javascript - 用户界面路由器 : Transform parameter from URL

javascript - Google 表格粘贴格式

javascript - 用于预加载整个流的 Html 音频标签

javascript - 将附加 html 添加到 QUnit 输出结果以进行特定测试

JavaScript switch 语句无法匹配大小写

java - 以 char 数组为索引和 int 为值的结构

javascript - myObservableArray.length 和 myObservableArray().length 之间的区别