gpt4 book ai didi

javascript - 为什么在 foo :bar() function call return ReferenceError instead of SyntaxError? 中使用冒号

转载 作者:行者123 更新时间:2023-11-30 11:13:40 24 4
gpt4 key购买 nike

var foo = {
bar: function() { return ""; }
};
foo:bar();

以上结果:

Uncaught ReferenceError: bar is not defined

在此上下文中使用它 console.log(foo:bar()); 结果:

SyntaxError: missing ) after argument list

在某些情况下,对象冒号对象/函数会出现 SyntaxError但是在这种情况下却没有,为什么会这样呢?我已经在 node.js 和几个浏览器中对此进行了测试,并且这种行为是一致的,所以我很好奇在“foo:bar”的上下文中什么不会产生任何错误。

不记得我是如何实现 SyntaxError 的,但它与使用 : 的对象调用函数有关

最佳答案

我不确定你想用这个实现什么。

将其命名为“foo:bar”,它与foo 变量无关。相反它declares label名称为“foo”。

console.log 中声明标签会导致 SyntaxError,因为它中断了对语句的解析。

另一方面,没有 console.log 正如您提到的那样具有正确的语法:它声明标签“foo”并尝试调用不存在的函数“bar”。这就是它显示 ReferenceError 的原因。

无论如何 Javascript 期望点 (.) 访问对象成员:foo.bar()

关于javascript - 为什么在 foo :bar() function call return ReferenceError instead of SyntaxError? 中使用冒号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52560118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com