构造函数
3.在自定义构造函数时,原型对象默认只会获得constructor属性,其他所有方法都继承自Object
function Fun() {}
原型
1.什么是原型 每个函数都会创建一个prototype属性,这个属性指向原型对象。 包含实例共享的属性和方法。
2.使用原型的好处 在原型上面定义的属性和方法可以被对象实例共享
实例对象
new 构造函数出来的
构造函数、原型、实例对象的关系
构造函数的prototype指向原型对象prototype, 原型的constructor指回构造函数, 实例的__proto__指向原型对象prototype
原型链
原型链:原型对象可能有原型、并从中继承方法和属性,一层一层、以此类推。
继承
JS的继承主要是通过原型链实现
-
改变原型指向实现继承 缺点:改变原型指向的同时实现继承,直接初始化了属性,继承的属性值是一样
-
借用构造函数实现继承 优点:解决了改变原型指向实现继承,继承的属性值是一样的问题
缺点:原型上的方法不能继承
-
组合继承(改变原型指向&借用构造函数) 优点:改变原型指向实现继承,解决了借用构造函数继承中方法不能继承问题 借用构造函数继承,解决了改变原型指向实现继承中属性值一样的问题
-
拷贝继承