既typeof之后的另一位老朋友!
在咱们的上一节JavaScript 原型总结二 一切皆对象之typeof中说道,函数也是一种对象。他也是属性的集合,你也可以对函数进行自定义属性。
不用等咱们去试验,javascript自己就先做了表率,人家就默认的给函数一个属性——prototype。对,每个函数都有一个属性叫做prototype。
这个prototype的属性值是一个对象(属性的集合,再次强调!),默认的只有一个叫做constructor的属性,指向这个函数本身。
如上图,SuperType是是一个函数,右侧的方框就是它的原型。
原型既然作为对象,属性的集合,不可能就只弄个constructor来玩玩,肯定可以自定义的增加许多属性。例如这位Object大哥,人家的prototype里面,就有好几个其他属性。
function Fn() {} |
说到底:对象是由函数创建的.JavaScript的继承离不开prototype.这也是问什么函数的typeof为什么是Function类型了,原则上就是形成了一个原型环链,可能这里讲的不叫抽象,这是必要要注意对象的”proto“
这里的”proto“成为“隐式原型”,下一节<JavaScript 原型总结四 隐式原型>。另外本人的订阅号和微信
有疑问或者商业合作可以加博主微信:。一起交流