夯实基础之--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原理的主要内容,如果未能解决你的问题,请参考以下文章
夯实Java基础系列4:一文了解final关键字的特性使用方法,以及实现原理
精华推荐 | JVM深层系列「GC底层调优系列」一文带你彻底加强夯实底层原理之GC垃圾回收技术的分析指南(GC原理透析)
精华推荐 | JVM深层系列「GC底层调优系列」一文带你彻底加强夯实底层原理之GC垃圾回收技术的分析指南(GC原理透析)