夯实基础之--new关键字instanceOf原理

Posted zifayin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了夯实基础之--new关键字instanceOf原理相关的知识,希望对你有一定的参考价值。

1.instanceOf原理

 检测右边构造函数的prototype是否在左边对象的原型链上,在返回true,不在返回false

例:function  Persion(name,age){

    this.name = name;

               this.age  = age;

  } ; 

       let  p  = new  Persion()

       console.log( p   instanceOf  Persion )      //true

      对象p的原型链为:p.__proto__  ==   Persion.prototype   Persion.prototype .__proto__  ==  Object.prototype   Object.prototype.__proto__ == null

 

2.new关键字原理

 当执行代码new  Persion()时,会进行以下操作:

  • 创建一个空对象obj
  • 将obj的__proto__指向Persion.prototype
  • 显示的绑定this,Persion.call(obj,‘ ‘jake‘, 30)
  • 返回obj(前提是构造函数的返回值不是对象或者函数)

  伪代码实现如下:

  

let  obj  = {};

obj.__proto__  =  Persion.prototype;

Persion.call(obj, ‘jake‘, 30);

return  obj;
  

  

以上是关于夯实基础之--new关键字instanceOf原理的主要内容,如果未能解决你的问题,请参考以下文章

3.java基础之关键字instanceof

夯实Java基础系列4:一文了解final关键字的特性使用方法,以及实现原理

精华推荐 | JVM深层系列「GC底层调优系列」一文带你彻底加强夯实底层原理之GC垃圾回收技术的分析指南(GC原理透析)

精华推荐 | JVM深层系列「GC底层调优系列」一文带你彻底加强夯实底层原理之GC垃圾回收技术的分析指南(GC原理透析)

FLASK凡氪谈生存与发展之道:技术创新为突破点,夯实基础与门店共赢

instanceof的原理