首頁  >  文章  >  web前端  >  判斷JS物件是否擁有某種屬性的兩種方式_javascript技巧

判斷JS物件是否擁有某種屬性的兩種方式_javascript技巧

WBOY
WBOY原創
2016-05-16 17:11:061131瀏覽

兩種方式,但稍有差別

1,in 運算子

複製程式碼 代碼如下:

var obj = {name:'jack'}; 🎜>alert('name' in obj); // --> true
alert('toString' in obj); // --> true

可看到無論是name,或是原形鏈上的toString,都能偵測到回傳true。

2,hasOwnProperty 方法

複製程式碼 代碼如下:
var obj = {name:'jack'}; 🎜>obj.hasOwnProperty('name'); // --> true
obj.hasOwnProperty('toString'); // --> false

原型鏈上繼承過來的屬性無法透過hasOwnProperty偵測到,回傳false。

要注意的是,雖然in能偵測到原型鏈的屬性,但for in通常卻不行。

當然重寫原型後for in在IE9/Firefox/Safari/Chrome/Opera下是可見的。請參閱:

for in的缺陷

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