2011-04-24 2 views
5

누구나 jQuery.isPlainObject()와 jQuery.isEmptyObject()의 차이점을 설명 할 수 있습니까? 두 속성은 속성이없는 개체에 대해 true를 반환합니다. 예jQuery.isPlainObject()와 jQuery.isEmptyObject()의 차이점

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

미리 감사드립니다.

답변

13

$.isEmptyObject()은 개체의 형식이나 생성 방법을 고려하지 않습니다. 속성이 전혀없는 한이 함수는 true를 반환합니다.

$.isPlainObject()은 순수한 Object 인스턴스의 경우 true를 반환합니다. 다른 형식의 객체 인 경우 false입니다. Number, String, Function 또는 맞춤형입니다.


$.isPlainObject()에 대한 manual에서

:

설명 : 객체는 일반 객체 인 경우 확인보고 (사용하여 만든이 "{}"또는 "새 개체"). 즉 일반 Object 클래스의 인스턴스이기 때문에

그래서 사실 반환이 기능을 {} 리터럴 빈 개체를 검사합니다. 그리고 비어 있기 때문에 $.isEmptyObject()도 true를 반환합니다.

+0

와우, 감사합니다! – maximus

5
jQuery.isEmptyObject() 

이 함수는 개체가 비어 있으면 (이름에서 알 수 있듯이) true를 반환합니다. 이 객체 리터럴 또는 (일반적으로 더 적은) 객체가 "new Object()"로 작성된 경우

jQuery.isPlainObject() 

이 함수는 true를 돌려줍니다.

이 예는 도움이 될 수 있습니다 : 빠른 응답을위한

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