什么是“未捕获的TypeError:对象没有方法”
所以这是一个更普遍的问题。 关于为什么会出现这种错误的问题有数百个问题,但是我希望能够更深入地了解更快地解决这些问题。 或者只是学习新东西。 如果有人可以找到解释的参考,我将很乐意结束这个问题,但我找不到。
- 缺少什么?
- 是浏览器javascript编译器抛出错误还是jQuery?
- 什么是Object [object Object]?
缺少什么?
您正在尝试调用不存在的对象的方法。 例如:
var foo = {}; foo.bar();
如果属性确实存在,但不是函数,则会出现类似于以下内容的错误:
TypeError: Property 'bar' of object #
注意:不同的浏览器会显示不同的错误消息,这一消息来自Chrome。
是浏览器javascript编译器抛出错误还是jQuery?
它是JavaScript运行时引擎。 它与jQuery无关。
什么是Object [object Object]?
[object Object]
是[object Object]
的默认字符串表示forms。 尝试:
alert({});
您可以通过实现toString
方法覆盖它:
var foo = { toString: function() { return "I'm a boring object."; } }; alert(foo);
[object Object]是对象的默认toString方法返回的内容。 当您看到此错误时,这意味着您正在尝试在没有具有该名称的属性的对象上调用方法,并且尚未覆盖其toString方法。
如果您看到此消息,则应使用firebug或其他一些调试工具检查它出现在哪一行,并尝试理解为什么调用对象上不存在消息中“method”之后的属性名称。
这与jQuery没有任何关系。 它只是在对象上不存在属性时抛出的默认错误。