gpt4 book ai didi

JavaScript "Uncaught TypeError: object is not a function"关联性问题

转载 作者:IT王子 更新时间:2023-10-29 02:46:51 25 4
gpt4 key购买 nike

代码如下:

<body>
<a href="javascript:;" id="test">hello</a>
</body>

<script type="text/javascript">
document.getElementById("test").addEventListener("click", function () {
test()
}, false)
function test() {
var postTypes = new Array('hello', 'there')
(function() { alert('hello there') })()
}
</script>

这会抛出一个:

"Uncaught TypeError: object is not a function"

如果我将匿名函数调用/调用包装在另一组括号中,它将执行警报,但仍然会给我一个错误。如果我在“var postTypes”定义之后加一个分号,那么它就完全没问题了。

我被引导相信 JavaScript 不需要分号,所以我猜测函数应用程序有一些我不完全理解的奇怪的关联规则。为什么会出现此错误?

最佳答案

JavaScript 确实需要分号。只是解释器会在可能的换行符处为您插入它们*

不幸的是,代码

var a = new B(args)(stuff)()

不会导致语法错误,因此不会插入;。 (一个可以运行的例子是

var answer = new Function("x", "return x")(function(){return 42;})();

为了避免出现这样的意外,请训练自己始终以 ; 结束语句。


* 这只是一个经验法则,并不总是正确的。插入规则要复杂得多。这blog page关于分号插入有更多详细信息。

关于JavaScript "Uncaught TypeError: object is not a function"关联性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4026891/

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