理解JavaScript 中hasOwnProperty()的作用

【轉載】http://hj149.javaeye.com/blog/505237

     hasOwnProperty:是用來判斷一個對象是否有你給出名稱的屬性或對象。不過需要注意的是,此方法無法檢查該對象的原型鏈中是否具有該屬性,該屬性必須是對象本身的一個成員。格式如下:

    Js代碼 

    1. object.hasOwnProperty(proName); 

       判斷proName的名稱是不是object對象的一個屬性或對象。

 

   1. 示例一:

    var bStr = "Test String".hasOwnProperty("split");    // 得到false, 因爲不能檢測原型鏈中的屬性 

               但是:

              "Test String".split(" ");是能成功調用的
   2.示例二:

     var bStr1 = String.prototype.hasOwnProperty("split"); //String對象的原型上本來就有這個屬性,自然返回true  
   3. 示例三

       var bObj = ({fnTest:function(){}}).hasOwnProperty("fnTest"); // 返回true,因爲對象中屬性 存在

 


    Object 對象

              Object 對象自身用處不大,不過在瞭解其他類之前,還是應該瞭解它。因爲 ECMAScript 中的 Object 對象與 Java 中的 java.lang.object 相似,ECMAScript 中的所有對象都由這個對象繼承而來,Object 對象中的所有屬性和方法都會出現在其他對象中,所以理解了 Object 對象,就可以更好地理解其他對象。 

     Object 對象具有下列屬性:

     constructor 
           對創建對象的函數的引用(指針)。對於 Object 對象,該指針指向原始的 Object() 函數。 
     Prototype 
            對該對象的對象原型的引用。對於所有的對象,它默認返回 Object 對象的一個實例。

 Object 對象還具有幾個方法:

    hasOwnProperty(property) 
     判斷對象是否有某個特定的屬性。必須用字符串指定該屬性。(例如,o.hasOwnProperty("name")) 
    IsPrototypeOf(object) 
    判斷該對象是否爲另一個對象的原型。 
    PropertyIsEnumerable 
    判斷給定的屬性是否可以用 for...in 語句進行枚舉。 
    ToString() 
    返回對象的原始字符串表示。對於 Object 對象,ECMA-262 沒有定義這個值,所以不同的 ECMAScript 實現具有不同的值。 
   ValueOf() 
    返回最適合該對象的原始值。對於許多對象,該方法返回的值都與 ToString() 的返回值相同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章