instanceof
-
instanceof用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上
-
语法: object(实例对象) instanceof constructor(某个构造函数)
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
const auto = new Car('Honda', 'Accord', 1998);
console.log(auto instanceof Car);
// expected output: true
console.log(auto instanceof Object);
// expected output: true
要检测对象不是某个构造函数的实例时
if (!(mycar instanceof Car)) {
// Do something, like mycar = new Car(mycar)
}
// 不能写成
if (!mycar instanceof Car)
Object.prototype.hasOwnProperty()
- 指示对象自身属性中是否具有指定的属性
- 语法:obj.hasOwnProperty(prop)
- @return Boolean
- 此方法和in不同,hasOwnProperty()会忽略原型链上继承的属性
遍历一个对象的所有自身属性 忽略继承属性 for...in只会遍历可枚举属性
let info = { name: "vvvvv", age: 25};
for(let prop in info) {
if(info.hasOwnProperty(prop)) {
console.log(info[prop]);
}else {
console.log('none');
}
}
// output: vvvvv 25