所以这是一个更普遍的问题。关于为什么这个和那个返回这个错误有数百个问题,但我想更深入地了解以更快地解决这些问题。或者只是学习一些新东西。如果有人能找到解释的参考,我很乐意结束这个问题,但我就是找不到。
- 缺少什么?
- 是浏览器 javascript 编译器抛出错误还是 jQuery?
- 什么是对象[对象对象]?
所以这是一个更普遍的问题。关于为什么这个和那个返回这个错误有数百个问题,但我想更深入地了解以更快地解决这些问题。或者只是学习一些新东西。如果有人能找到解释的参考,我很乐意结束这个问题,但我就是找不到。
缺少什么?
您正在尝试调用不存在的对象的方法。例如:
var foo = {};
foo.bar();
如果该属性确实存在,但不是函数,您将收到类似于以下内容的错误:
TypeError: Property 'bar' of object #<Object> is not a function
注意:不同的浏览器显示不同的错误信息,这个来自 Chrome。
是浏览器 javascript 编译器抛出错误还是 jQuery?
它是 JavaScript 运行时引擎。它与 jQuery 无关。
什么是对象[对象对象]?
[object Object]
是对象的默认字符串表示。尝试:
alert({});
您可以通过实现以下toString
方法来覆盖它:
var foo = {
toString: function() {
return "I'm a boring object.";
}
};
alert(foo);
[object Object] 是对象的默认 toString 方法返回的内容。当您看到此错误时,这意味着您正在尝试调用一个对象上的方法,该对象没有具有该名称的属性,并且尚未覆盖其 toString 方法。
如果您看到此消息,您应该使用 firebug 或其他调试工具检查它发生在哪一行,并尝试了解为什么消息中“方法”之后的属性名称在调用对象上不存在。
This has nothing in particular to do with jQuery. It is simply the default error thrown when a property doesn't exist on an object.