1. 程式人生 > >判斷JS物件是否擁有某屬性

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

1,in 運算子

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

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

2,hasOwnProperty 方法

1 2 3 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的缺陷