new过程做了什么?

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

2、隐式return this对象,也就是new xxx()赋值给全局变量xxxx,这个时候this的默认指向window转变指向了xxxx

3、这个时候的xxxx相当于一个对象,保存了this对象里面的全部键值对

既然知道了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

上一篇:atitit. it软件项目管理---自己的员工,雇佣军、援军,混合的员工 杂牌 人员管理架构


下一篇:Delphi 字符串截取函数