当我执行以下代码时,我得到以下错误。 未捕获的TypeError:对象不是函数
<html>
<script>
var obj_1 = {x:1, y:2}
(function (o)
{
for(i in o)
{
console.log(i);
}
})(obj_1);
</script>
</html>
请解释导致此错误的原因? 感谢。
答案 0 :(得分:5)
您在申报后遗漏了一个分号。它认为您正试图致电{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会首先尝试将下一行合并到语句中,如果它不能,那么它就好像有一个{ {1}}。
;