所謂"空對象",即不包括任何可枚舉(自定義)的屬性。簡而言之,就是該對象沒有屬性可以通過for...in
迭代。
該函數屬於全局jQuery
對象。
語法
jQuery 1.4 新增該靜態函數。
jQuery.isEmptyObject( object )
參數
參數 | 描述 |
---|---|
object | 任意類型需要進行判斷的任意值。 |
注意:該參數應該始終是一個純粹的JavaScript Object
,因為其他類型(例如:DOM元素、原始字符串/數字、宿主對象)可能無法獲得跨瀏覽器的一致結果。要確定一個對象是否是一個純粹的JavaScript Object,你可以使用$.isPlainObject()方法。
返回值
jQuery.isEmptyObject()
函數的返回值為Boolean類型,如果指定的參數是空對象,則返回true
,否則返回false
。
示例&說明
jQuery.isEmptyObject()
是通過for...in
循環來進行判斷,其源代碼部分如下:
isEmptyObject: function( obj ) {
var name;
for ( name in obj ) {
return false;
}
return true;
}
jQuery.isEmptyObject()
函數的jQuery示例代碼如下:
//在當前頁面內追加換行標簽和指定的HTML內容
function w( html ){
document.body.innerHTML += "<br/>" + html;
}
w( $.isEmptyObject( { } ) ); // true
w( $.isEmptyObject( new Object() ) ); // true
w( $.isEmptyObject( [ 0 ] ) ); // false
w( $.isEmptyObject( { name: "CodePlayer"} ) ); // false
w( $.isEmptyObject( { sayHi: function(){} } ) ); // false
function User(){
}
User.prototype.word = "Hello";
// 自定義的原型對象上的屬性也是可枚舉的
w( $.isEmptyObject( new User() ) ); // false
/* 盡管在沒有為空數組、Function、Number等內置對象添加自定義屬性的情況下,它們也是不可枚舉的,但是不推薦這么做。因為isEmptyObject()的參數應該始終是一個純粹的Object */
// 數組中沒有元素,也無法通過for...in迭代出屬性
w( $.isEmptyObject( [ ] ) ); // true
// Function、Number、String等內置對象也無法通過for...in迭代出屬性
w( $.isEmptyObject( function(){ alert("xxx") } ) ); // false