JavaScript 原型

2020.11.17

先来看一道题

JavaScript 原型

返回结果是 false、false、true、true
实例的__proto__ 和 构造函数的 prototype 相等

关于原型(prototype)

1、原型即 prototype ,是 函数 的一个属性,也是一个对象,是祖先。构造函数+原型整体也是一个对象,叫做原型对象 。对象可以继承对象原型的属性。原型的存在可以减少代码的冗余,减少执行次数。
对象并不具有prototype属性,只有函数才有prototype属性。!!

2、利用原型的特点和概念可以提取共有属性。

3、可以用隐式属性__proto__ 查看对象的原型。

4、用 constructor 可以查看对象的构造函数,即找对象是谁生的,该属性可以手动更改。

总结:(好好理解这段话!)

js里所有的对象都有__proto__ 属性(对象,函数),指向构造该对象的构造函数的原型。
只有函数function才具有prototype属性。这个属性是一个指针,指向一个对象,这个对象的用途就是包含所有实例共享的属性和方法(我们把这个对象叫做原型对象)。
原型对象也有一个属性,叫做constructor,这个属性包含了一个指针,指回原构造函数。

关于原型链

(用了别人的图)
JavaScript 原型

可以看看别人理解原型的文章,多复习!