Javascript 为什么在对象的函数属性中声明变量之前可以引用它?
基本上,我在寻找一个解释,解释为什么和如何工作Javascript 为什么在对象的函数属性中声明变量之前可以引用它?,javascript,Javascript,基本上,我在寻找一个解释,解释为什么和如何工作 const someObj = { test: () => callback() } const callback = () => console.log("how?") someObj.test() 输出:如何输出? 而这不是 const someObj = { test: callback() } const callback = () => console.log("ho
const someObj = {
test: () => callback()
}
const callback = () => console.log("how?")
someObj.test()
输出:如何输出?
而这不是
const someObj = {
test: callback()
}
const callback = () => console.log("how?")
someObj.test
输出:未捕获引用错误:初始化前无法访问“回调”
在第一个示例中,您正在为属性测试分配函数。在您调用回调之前,它不会尝试调用回调。当您调用它时,回调已经被定义。在定义回调之前尝试调用test,您将看到是否也失败
在第二个示例中,您试图将调用callback的结果分配给属性测试,但看到callback尚未定义,您就得到了错误。在定义
someObj
时(在第一种情况下),此时实际上没有任何东西试图调用callback
。但在第二种情况下,您试图在定义它之前调用它。