JS物件是否擁有某屬性
兩種方式,但稍有區別
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下是可見的。

arrow
arrow
    文章標籤
    JS
    全站熱搜

    科技幫 發表在 痞客邦 留言(0) 人氣()