18.instanceof关键字
2019-06-06 本文已影响0人
Fl_来看看
1.什么是instanceof关键字?
- instanceof用于判断 "对象" 是否是指定构造函数的 "实例"
2.instanceof注意点
- 只要 构造函数的原型对象出现在实例对象的原型链中都会返回true
function Person(myName) {
this.name = myName;
}
function Student(myName, myScore) {
Person.call(this, myName);
this.score = myScore;
}
Student.prototype = new Person();
Student.prototype.constructor = Student;
let stu = new Student();
console.log(stu instanceof Person); // true
- 只要 构造函数的原型对象出现在实例对象的原型链中都会返回true
- 那么,Person的原型对象出现在stu 的原型链上吗?
通过 Student.prototype = new Person()【设为A】;,A是Person的实例,stu如果访问不到属性和方法,会到原型链上找,即Student.prototype,也就是A,A如果找不到,又会到A的原型链上找,那么A的原型链上有Person的原型对象吗?大答案是肯定的,A是Person的实例,即A.proto===Person的原型对象,所以构造函数Person的原型对象出现在实例对象stu的原型链,最终会返回true。