我想了解差异b / w 空对象和普通对象。
答案 0 :(得分:1)
我认为您实际上是指询问$.isEmptyObject()
和$.isPlainObject()
。
$.isEmptyObject()
告诉您对象是否具有无可枚举的属性,因此(从外部)看起来是"为空"。它可以是任何类型的对象。
$.isPlainObject()
告诉您对象是否只是使用var x= {};
或var x = new Object()
创建的普通Javascript对象,该对象没有其他继承且不是某种宿主对象。< / p>
普通对象可能是空的也可能不是。空对象可能是也可能不是普通对象。
例如,Javascript中的Array
是一个对象,但根据$.isPlainObject()
,它不是普通对象,因为它来自Object
以外的其他内容。
一些例子:
$.isPlainObject([]); // false
$.isPlainObject({}); // true
$.isPlainObject({greeting: "hello"}); // true
$.isPlainObject($(document)); // false
$.isEmptyObject([]); // true
$.isEmptyObject({}); // true
$.isEmptyObject([1]); // false
$.isEmptyObject({greeting: "hello"}); // false