hasOwnProperty() 方法 :
语法 : obj.hasOwnProperty(“属性名”);
true : 代表 属性是对象自身特有的 或者 将继承父类的属性修改
false : 代表 属性是继承自父类 或 属性不存在
说明 :
1. JavaScript 里实例化一个对象会继承原型链上的所有属性和方法
2. JavaScript 中 object 提供了 ( hasOwnProperty() ) 方法用来判断属性是不是自身特有属性.
JavaScript 代码 :
function Human(){
Human.prototype.name = "小王";
Human.prototype.age = 20;
}
var human_A = new Human();
console.log(human_A.name, human_A.age, human_A.sex) // 小王 20 undefined
console.log(human_A.hasOwnProperty("name")); // false
human_A.sex= "male";
console.log(human_A.hasOwnProperty("sex")); // true
human_A.name= "小李";
console.log(human_A.hasOwnProperty("name")); // true
这个例子中可以看出 , hasOwnProperty 方法还可以判断属性有没有被修改过 ,一旦修改(赋值) , hasOwnProperty 方法返回的值就为true .
注意 : 无效修改也会算作修改
JavaScript 代码 :
function Human(){
Human.prototype.name = "小王";
Human.prototype.age = 20;
}
var human_A = new Human();
console.log(human_A.hasOwnProperty("name")); // false
human_A.name = "小王";
console.log(human_A.hasOwnProperty("name")); // true