当我执行以下代码时,出现以下错误。 未捕获的类型错误:对象不是函数
<html>
<script>
var obj_1 = {x:1, y:2}
(function (o)
{
for(i in o)
{
console.log(i);
}
})(obj_1);
</script>
</html>
请解释导致此错误的原因? 谢谢。
最佳答案
声明后缺少分号。它认为您正在尝试调用 {x:1, y:2}()
。分号是可选的并且通常有效,除非你有一些模棱两可的事情。
这就是为什么您应该始终使用分号;
您应该始终做的另一件事是不要像在 for
循环中那样创建全局变量
// This works
var obj_1 = {x:1, y:2};
(function (o)
{
for(var i in o)
{
console.log(i);
}
})(obj_1);
当你没有用 ;
结束一行时,JavaScript 将首先尝试将下一行合并到语句中,如果不能,那么它就好像有一个 >;
.
// The following inserts a semi-colon because
// "var x = 2 x = 3" is not a valid statement
var x = 2
var x = 3
// The following does not insert a semi-colon because
// "var x = $().height(50).width(100);" is a valid statement
var x = $('p').
height(50).
width(100);
关于javascript - 代码执行抛出错误 "object is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27928563/