自有屬性:對象實例私有的屬性,只有該對象實例可用
共有屬性:對象實例共有的屬性,所有對象實例都可用
要判斷對象實例的自有屬性、共有屬性;首先看看JS給我們提供的兩個方法:
1、判斷是否是對象實例的屬性
"屬性名" in 對象實例
2、判斷是否是對象實例的自有屬性
對象實例.hasOwnProperty('屬性名')
定義一個對象實例:
var obj = { name: '小馬扎', age: 18 }; Object.prototype.car = '筋斗雲'; // 在Object類中定義car屬性
1、判斷是否是對象實例的屬性
console.log("car" in obj); // true console.log("fly" in obj); // false
2、判斷是否是對象實例私有的屬性
console.log(obj.hasOwnProperty('name')); // true console.log(obj.hasOwnProperty('car')); // false
3、判斷是否是對象實例私有的屬性
console.log(!obj.hasOwnProperty("car") && "car" in obj) // true console.log(!obj.hasOwnProperty("name") && "name" in obj) // false