js new运算符

发布时间 2023-04-12 15:03:43作者: ducky_L

1、new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。(通过构造函数来创建一个实例对象)

2、new做了什么?

     ①创建一个临时对象 

  ②为该临时对象添加属性 __proto__,将该属性链接至构造函数的原型对象(绑定原型)

  ③将this指向该临时对象

  ④执行构造函数

  ⑤返回临时对象

//new的过程
function Fun(name){ this.name=name ; return this; } var obj={} obj.__proto__=Fun.prototype; var foo=Fun.call(obj,'ducky'); console.log(foo); //Fun {name: 'ducky'}

3、例子说明:

function Car() {}
car1 = new Car();
car2 = new Car();

console.log(car1.color);    // undefined

Car.prototype.color = "original color";
console.log(car1.color);    // original color

car1.color = 'black';
console.log(car1.color);   // black

console.log(car1.__proto__.color) //original color
console.log(car2.__proto__.color) //original color
console.log(car1.color)  // black
console.log(car2.color) // original color