构造函数、原型、实例对象、继承

80 阅读1分钟

构造函数

3.在自定义构造函数时,原型对象默认只会获得constructor属性,其他所有方法都继承自Object

function Fun() {}

image.png

原型

1.什么是原型 每个函数都会创建一个prototype属性,这个属性指向原型对象。 包含实例共享的属性和方法。

2.使用原型的好处 在原型上面定义的属性和方法可以被对象实例共享

实例对象

new 构造函数出来的

构造函数、原型、实例对象的关系

构造函数的prototype指向原型对象prototype, 原型的constructor指回构造函数, 实例的__proto__指向原型对象prototype

原型链

原型链:原型对象可能有原型、并从中继承方法和属性,一层一层、以此类推。 image.png

继承

JS的继承主要是通过原型链实现

  1. 改变原型指向实现继承 缺点:改变原型指向的同时实现继承,直接初始化了属性,继承的属性值是一样

  2. 借用构造函数实现继承 优点:解决了改变原型指向实现继承,继承的属性值是一样的问题

缺点:原型上的方法不能继承

  1. 组合继承(改变原型指向&借用构造函数) 优点:改变原型指向实现继承,解决了借用构造函数继承中方法不能继承问题 借用构造函数继承,解决了改变原型指向实现继承中属性值一样的问题

  2. 拷贝继承