理解JAVASCRIPT中hasOwnProperty()的作用

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.