- 创建了一个空对象
- 让子对象自动继承构造函数的原型对象
- 调用构造函数,替换实参,将this替换为正在创建的新对象
- 将新对象的内存地址返回
优点: 重用对象结构代码
缺点: 如果构造函数中包含方法定义,则每次创建新对象都会重复创建相同方法的副本。——浪费内存!
解决:如果发现多个子对象都需要使用相同的功能时,就可以使用继承来解决
什么是继承?父对象中的成员,子对象无需重复创建就可以直接使用,就像使用自己的成员一样
JS中的继承都是通过原型对象来实现的
什么是原型对象?替所有子对象集中保存共有的属性和方法的特殊父对象
如何:创建原型对象:不用自己创建,而是在定义构造函数时,程序自动为我们生成。
找到原型对象?构造函数中都有一个自带属性prototype,指向自己匹配的原型对象即:构造函数.prototype
向原型对象中添加共有的属性和方法构造函数.prototype.共有方法 = function(){}
构造函数.prototype.共有属性=属性值
今后,用子对象.访问对象的成员时,js引擎先在子对象内部查找自有的属性。如果子对象没有,则js引擎会自动延_ _proto_ _属性去父元素查找。如果在父元素中找到了想要的属性或方法,则和访问子对象的方法一样调用。