Разница между jQuery.isPlainObject() и jQuery.isEmptyObject()

#javascript #jquery #object

#javascript #jquery #объект

Вопрос:

Кто-нибудь может объяснить, в чем разница между jQuery.isPlainObject () и jQuery.isEmptyObject()? Они оба возвращают true для объекта, у которого нет свойств. Примеры

 jQuery.isEmptyObject({}); // returns true
jQuery.isPlainObject({}); // returns true
  

Заранее спасибо.

Ответ №1:

$.isEmptyObject() не учитывает тип объекта или то, как он был создан; пока у него полностью отсутствуют свойства, эта функция возвращает true.

$.isPlainObject() возвращает true для объектов, которые являются чистыми Object экземплярами; false для объектов любого другого типа, например Number , String Function или пользовательского типа.


Из руководства по $.isPlainObject() :

Описание: Проверьте, является ли объект обычным объектом (созданным с помощью «{}» или «нового объекта»).

Таким образом, проверка пустого объектного литерала {} с помощью этой функции вернет true, потому что это экземпляр простого Object класса. И поскольку он пустой, $.isEmptyObject() также возвращает true.

Ответ №2:

 jQuery.isEmptyObject()
  

Эта функция вернет значение true, если объект пуст (как следует из названия).

 jQuery.isPlainObject()
  

Эта функция вернет значение true, если это литерал объекта или (реже) объект создается с помощью « new Object() «.

Этот пример может помочь:

 jQuery.isEmptyObject({ 'try' : 'this' }); // returns false
jQuery.isPlainObject({ 'try' : 'this' }); // returns true