13919049954

Javascript与prototype-based继承

作者: 日期:2017/9/5 9:19:06 人气:311

        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只是为了“实现简单”而选择了前者。


            金城在线专注网站、软件、APP、微信公众平台、小程序、抖音、头条等开发推广,如果您有这方面的需求或者不同的观点,欢迎联系交流。

    官方微信

    本文网址:http://lz.net.cn/SEOyouhua/252.html
    读完这篇文章后,您心情如何?
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    更多>>网友评论
    发表评论