javascript - 为什么在对象的函数属性中声明变量之前可以引用它?

标签 javascript

基本上,我正在寻找有关为什么以及如何工作的解释

const someObj = {
    test: () => callback()
}

const callback = () => console.log("how?")

someObj.test()
output: how?
这不是
const someObj = {
    test: callback()
}

const callback = () => console.log("how?")

someObj.test
output: Uncaught ReferenceError: Cannot access 'callback' before initialization

最佳答案

在您的第一个示例中,您将一个函数分配给属性测试。在您调用它之前,它不会尝试调用回调。到您调用它时,回调已被定义。在定义回调之前尝试调用 test ,您将看到是否也失败。
在您的第二个示例中,您试图将调用回调的结果分配给属性测试,但是看到回调尚未定义,您仍然收到错误消息。

关于javascript - 为什么在对象的函数属性中声明变量之前可以引用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62669087/

相关文章:

javascript - 将 "this"传递给自定义 Tap 事件回调的正确方法

javascript - 可点击的进度条

javascript - 如何删除具有特定值的嵌套对象?

javascript - 菜单导航不适用于 jquery datepicker

javascript - 如何在 html 表格中正确叠加

javascript - 使用 javascript 将 JSON 对象转换为 XML

Javascript/HTML 按钮未显示

javascript - Angularjs 按钮在 ng-repeat 中加载状态指令

javascript - 有谁知道一个好的 JSON 时间服务器?

javascript - 如何将展平多维数组(任意深度)的索引转换为原始索引?