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

2021-06-19 11:53:51 字數 521 閱讀 2310

兩種方式,但稍有區別

1,in 運算子

**如下:

var obj = ;

alert('name' in obj); // --> true

alert('tostring' in obj); // --> true

可看到無論是name,還是原形鏈上的tostring,都能檢測到返回true。

2,hasownproperty 方法

**如下:

var obj = ;

obj.hasownproperty('name'); // --> true

obj.hasownproperty('tostring'); // --> false

unity3d

原型鏈上繼承過來的屬性無法通過hasownproperty檢測到,返回false。

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

當然重寫原型後for in在ie9/firefox/safari/chrome/opera下是可見的

判斷js物件是否擁有某屬性

兩種方式,但稍有區別 1,in 運算子1 2 3 varobj alert name inobj true alert tostring inobj true 可看到無論是name,還是原形鏈上的tostring,都能檢測到返回true。2,hasownproperty 方法1 2 3 varobj...

判斷JS物件是否擁有某屬性

兩種方式,但稍有區別 1,in 運算子 var obj alert name in obj true alert tostring in obj true 可看到無論是name,還是原形鏈上的tostring,都能檢測到返回true。2,hasownproperty 方法 var obj obj.h...

判斷JS物件是否擁有某屬性

判斷js物件是否擁有某屬性,兩種方法 1 in var obj alert name in obj true alert tostring in obj true 無論是name,還是原形鏈上的tostring,都能檢測到返回true。2 hasownproperty 方法 var obj obj....