首頁 >web前端 >js教程 >理解JAVASCRIPT中hasOwnProperty()的作用_javascript技巧

理解JAVASCRIPT中hasOwnProperty()的作用_javascript技巧

WBOY
WBOY原創
2016-05-16 17:32:481093瀏覽

JavaScript中hasOwnProperty函數方法是傳回一個布林值,指出一個物件是否具有指定名稱的屬性。

hasOwnProperty()使用方法:

object.hasOwnProperty(proName)
其中參數object是必選項。一個物件的實例。
proName是必選項。一個屬性名稱的字串值。

如果 object 有指定名稱的屬性,那麼JavaScript中hasOwnProperty函數方法傳回 true;反之則傳回 false。此方法無法檢查該物件的原型鏈中是否具有該屬性;該屬性必須是物件本身的成員。在下例中,所有的 String 物件共用一個公用 split 方法。下面的程式碼將輸出 false 和 true。

複製程式碼 程式碼如下:

var s = new String("JScript");
print(s.hasOwnProperty("split"));
print(String.prototype.hasOwnProperty("split"));

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() 的回傳值相同

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn