1.in 運算符方法
對象的自有屬性或繼承屬性中包含這個屬性則返回true;
var obj = { name:'david' }; console.log('name' in obj); // --> true console.log('toString' in obj); // --> true
無論是key值name,還是原形鏈上的toString,都能檢測到返回true。
2.hasOwnProperty 方法
用來檢測是否是對象自有屬性,對於繼承屬性返回false;
var obj = { name:'david' }; obj.hasOwnProperty('name'); // --> true obj.hasOwnProperty('toString'); // --> false
原型鏈上繼承過來的屬性toString無法通過hasOwnProperty檢測到,返回false。
3.propertyIsEnumerable方法
hasOwnProperty的加強版,只有屬性是自有而且是可枚舉的才返回true;