MDN中的对象原型

原型是一种机制。

此机制的作用是让a对象可以从b对象中继承功能特性;这种继承机制与经典的面向对象编程语言的机制不同。

js是基于原型的语言(prototype-based language)。

每个对象都拥有一个原型对象,对象以原型为模板从原型继承属性和方法。

原型对象也可能拥有原型,并继承属性和方法,层层包裹。

这种分散的事物之间存在联系而使得大家像是一根绳上的蚂蚱一样,这一大串蚂蚱加上这跟绳子就叫原型链。

只有绳子没有啥意思,只有蚂蚱又没联系,要串起来才好吃。

准确的说,这些属性和方法定义在Object的构造器函数(constructor functions)之上的prototype属性之中,而非对象实例本身。

对象实例和构造器之间建立一个连接,通过上溯原型链,在构造器中找到这些属性和方法。

注意:

对象的原型和构造函数的prototype属性是有区别的,前者是每个实例上都有的属性,后者是构造函数的属性,他们指向同一个对象。

就像是两条狗,他们的主人是不同的,但是他们都能根据嗅觉把主人带到相应的地方(也许埋着黄金也许埋着牛粪)。


js中每个函数都有prototype属性。

原文地址:https://www.cnblogs.com/flyover/p/14083172.html