JavaScript与prototype-based继承

网站建设知识 phpacg 3年前 (2018-04-24) 131次浏览 0个评论

Brendan Eich在描画JavaScript的开展历史时提到最后的LiveScript/JavaScript并没有任何“承袭”机制,后来为了方便用户扩展JavaScript言语写自己的库才从Self那边抄来了prototye-based承袭机制(不过Self里对象可以有多个prototype,而JavaScript的是弱化版,每个对象只能有一个prototype)。

至于事先Brendan为啥要用Self的prototype,与其说是技术缘由还不如说更多是团体品味的选择。Self更酷啊!

Self在面向对象的设计、完成与优化上做了许多探求,发现prototype-based承袭不但可以完美完成一切class-based承袭能做的事,它还能做更多更灵敏的事。而且一个优化的完成依然可以把prototype-based的功用做好。这么酷的东西十分契合Brendan的口味。

而Java十分不契合Brendan的口味。要不是公司压力他相对不会让LiveScript拟合Java的语法,而会做出个Scheme系的脚本言语吧。

要复杂完成的话,prototype-based跟class-based承袭的完成难度其实差异不大。确实前者可以看作比后者更“低级”(low level)的原语,但要完成起来比起后者能偷的懒也就那么一点点。很难说Brendan只是为了“完成复杂”而选择了前者。

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址