Object.prototype.hasOwnProperty方法接受一个字符串作为参数,返回一个布尔值,表示该实例对象自身是否具有该属性。
let obj = {
p: 123
};
obj.hasOwnProperty('p') // true
obj.hasOwnProperty('toString') // false
上面代码中,对象obj自身具有p属性,所以返回true。toString属性是继承的,所以返回false。
对象的存取器
写法二
var obj = {
get p() {
return 'getter';
},
set p(value) {
console.log('setter: ' + value);
}
};
因此属性p是可遍历的。实际开发中,写法二更常用。
注意,取值函数get不能接受参数,存值函数set只能接受一个参数(即属性的值)。
存取器往往用于,属性的值依赖对象内部数据的场合。