js new运算符
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
浙公网安备 33010602011771号