JavaScript 的原型介绍
在创建一个新函数的时候,都会为该函数创建一个 prototype
对象,成为原型对象。所有通过这个函数构造出来的实例,都可以使用构造函数的原型对象,原型的存在本质上来说是为了节省内存和实现继承。
prototype
在函数创建的时候,会根据特定的规则为函数创建一个 prototype
的属性,这个属性指向函数的原型对象。几乎所有的函数在创建的时候都会创建 prototype
属性,但使用 Function.prototype.bind
创建出来的函数例外。
constructor
在创建函数的时候生成的原型对象 prototype
自带一个属性:constructor
,这个属性是个指针,指向这个 prototype
所在的函数。
proto
每个对象都有 __proto__
属性,这个属性是一个指针,指向这个对象的构造函数的原型对象(prototype
)。这个属性开始并非标准,只是浏览器自行提供的一个属性,在 es6 时,为确保兼容性,被标准化为传统功能。