jQuery.isEmptyObject() 函數詳解


所謂"空對象",即不包括任何可枚舉(自定義)的屬性。簡而言之,就是該對象沒有屬性可以通過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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM