標籤:原型 str hello 內建對象 class notice return 使用 play
jQuery.isEmptyObject()函數用於判斷指定參數是否是一個Null 物件。
所謂"Null 物件",即不包括任何可枚舉(自訂)的屬性。簡而言之,就是該對象沒有屬性可以通過for...in迭代。
該函數屬於全域jQuery對象。
文法
jQuery 1.4 新增該靜態函數。
jQuery.isEmptyObject( object )
參數
| 參數 |
描述 |
| object |
任意類型需要進行判斷的任意值。 |
注意:該參數應該始終是一個純粹的JavaScript Object,因為其他類型(例如:DOM元素、原始字串/數字、宿主對象)可能無法獲得跨瀏覽器的一致結果。要確定一個對象是否是一個純粹的JavaScript Object,你可以使用$.isPlainObject()方法。
傳回值
jQuery.isEmptyObject()函數的傳回值為Boolean類型,如果指定的參數是Null 物件,則返回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
jQuery.isEmptyObject() 函數詳解