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操作符原理解析
原文地址:https://www.cnblogs.com/zlv2snote/p/10428465.html