1.New一个对象后发生什么事?
1)创建一个对象
2)将this指向该对象
3)为这个新对象添加属性
4)返回新对象
2.函数原型
function Person(){} //将Person构造函数原型指向一个新的原型对象,并强制将construct属性指向Person//如果通过Person.prototype.name给给原型对象添加字段,construct自动指向PersonPerson.prototype = {constructor:Person, name:"liming",age:32}let p = new Person()p.age = 40;console.log(p.age) //输出40,覆盖原型对象的age属性console.log(p.__proto__ === Person.prototype)//trueconsole.log(Person.prototype === Person) //true
实例对象p的__proto__和Person的prototype均指向同一个原型对象。
原型链:利用原型让一个引入类型继承另一个引用类型的属性和方法。当读取实例的属性或者方法时候,如果找不到,就会去找与实例相关联的原型对象,如果过还找不到,继续找原型的原型,直到顶层。