首页 > 其他 > 详细

new过程做了什么?

时间:2021-05-03 14:40:30      阅读:24      评论:0      收藏:0      [点我收藏+]

1、在构造函数内部隐式创造了一个this空对象,然后把赋值的属性都添加到this对象里面,也就是实参赋值形参,形参赋值给对象键值对的过程

2、隐式return this对象,也就是new Car()赋值给全局变量car,这个时候this的默认指向window转变指向了car,也从全局变量成为了实例对象car

这个时候的car对象,保存了this对象里面的全部键值对

    function Car(color,brand){
     //this = {};
      this.color = color;
      this.brand = brand;
      // return this;
    }
    var car = new Car(‘red‘,‘ford‘)
    console.log(car.brand); 
    输出:ford

既然知道了new在这个过程中都做了什么,那么不用new关键字是否可以实现上述过程呢?
1、自己显式构造一个空对象me

2、向空对象里面添加键值对

3、显式的返回me

    function Car(color,brand){
      var me = {};
      me.color = color;
      me.brand = brand;
      return me;
    }
    var car = Car(‘red‘,‘ford‘)
    console.log(car.brand);
    输出:ford

new过程做了什么?

原文:https://www.cnblogs.com/razzh/p/14727110.html

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