首页 > 其他 > 详细

描述new一个对象的详细过程,并且手写new

时间:2021-01-30 23:12:34      阅读:83      评论:0      收藏:0      [点我收藏+]

详细过程:1.创建一个空对象

2.给空对象的__proto__指向构造函数的prototype

3.构造函数中this指向新对象,并且赋值构造属性

4.返回新对象;

 

手写new:

function realizeNew(){

     //创建一个空对象   

    var obj={}

    //获取构造函数,并且把新创建对象的proto指向构造函数的原型

   var Con=[].shift.call(arguments);//获取第一个参数(即传递的构造函数)

   obj.__proto__=Con.prototype;

   let result=Con.apply(obj,arguments);

   return typeof(result)===‘object‘?result:obj;

}

 

//构造函数

function Person(name,age){

   this.name=name;

   this.age=age;

}

let person1=realizeNew(‘zhangsan‘,12);

console.log(person1.name);

console.log(person1.age);

 

参考文献:https://www.cnblogs.com/echolun/p/10903290.html

https://www.cnblogs.com/memphis-f/p/12029567.html

 

描述new一个对象的详细过程,并且手写new

原文:https://www.cnblogs.com/mili3/p/14350452.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!