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
标签:console,log,color,car1,js,运算符,new,original From: https://www.cnblogs.com/ducky-L/p/17309840.html