Разница между jQuery.isPlainObject () и jQuery.isEmptyObject () - PullRequest
5 голосов
/ 25 апреля 2011

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

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

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

Ответы [ 2 ]

13 голосов
/ 25 апреля 2011

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

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


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

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

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

5 голосов
/ 25 апреля 2011
jQuery.isEmptyObject()

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

jQuery.isPlainObject()

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

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

jQuery.isEmptyObject({ 'try' : 'this' }); // returns false
jQuery.isPlainObject({ 'try' : 'this' }); // returns true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...