JS中的new操作符原理解析

Posted zlv2s

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中的new操作符原理解析相关的知识,希望对你有一定的参考价值。

1 var Person = function(name){
2    this.name  = name;
3 }
4 Person.prototype.sayHello = function() {
5     console.log(\'hello \' + this.name);
6 }
7 var p1 = new Person(\'HANMEI\');
8 p1.sayHello();

1. 创建一个类的实例:创建一个空对象obj,然后把这个空对象的__proto__设置为Person.prototype(即构造函数的prototype);

2. 初始化实例:构造函数Person被传入参数并调用,关键字this被设定指向该实例obj;

3. 返回实例obj。

 

new 实现

1 function New(F){
2     var obj = {\'__proto__\': F.prototype};  /*第一步*/
3     return function() {
4         F.apply(obj, arguments);           /*第二步*/
5         return obj;                        /*第三步*/
6     }
7 }

 

-------------------------------

原文:https://www.cnblogs.com/lvmylife/p/8184176.html

以上是关于JS中的new操作符原理解析的主要内容,如果未能解决你的问题,请参考以下文章

js的new操作符深度解析

Js中的new原理及其实现

javascript中new操作符的原理

js的new操作符深度解析

1JS预解析原理

理解js中的new