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
解决方案
在您的第一个示例中,您正在为属性测试分配一个函数。在您调用它之前,它不会尝试调用回调。当你调用它的时候,回调已经被定义了。在定义回调之前尝试调用测试,你会看到是否也会失败。
在您的第二个示例中,您尝试将调用回调的结果分配给属性测试,但看到尚未定义回调,您会收到错误消息。
推荐阅读
- c++ - QT实时图有闪烁问题
- reactjs - 反应:如何编辑表单?
- autodesk-forge - 从 dbId 或 externalid 获取属性值 - Autodesk Forge
- javascript - 我怎样才能让这个 JS 滑块每三秒自动播放一次
- android - 如何以编程方式在android中使用blktrace命令执行shell脚本?
- c++ - 使用具有二次迟到成本的 OR-Tools 求解 VRP
- vb.net - VB 用 NCalc 计算坐标
- spring-boot - SpringBoot/Angular 应用程序中的访客模式
- wildfly-18 - Wildfly-18 中打开的文件描述符过多
- sql - 如何使用sql查询在给定开始时间和结束时间的情况下查找骑行的持续时间