javascript - 代码执行抛出错误 "object is not a function"

标签 javascript javascript-objects

当我执行以下代码时,出现以下错误。 未捕获的类型错误:对象不是函数

    <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/

相关文章:

javascript - 如果没有值,则更改选择框的宽度

javascript - Jquery 搜索自动完成在第一次 ajax 加载时不调用

每次都接受一个随机参数的 JavaScript 函数

javascript - Angular 2 服务获取返回未定义

javascript - 无法在 TypeScript 和 Systemjs 中加载带有扩展 js 的模块

javascript - 如何在使两个变量名成为同一对象的别名与使它们等于两个单独的对象之间进行切换?

javascript - 有没有比为此设置变量更好的方法?

javascript - 将具有父 ID 的对象数组转换为嵌套树结构

javascript - 如何使用 JavaScript 对 API 对象使用迭代器进行迭代?

javascript - 创建 Jquery 滑动菜单