18.instanceof关键字

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。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容