#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