>  Q&A  >  본문

javascript是面向对象的,怎么体现javascript的继承关系?

javascript是面向对象的,怎么体现javascript的继承关系?使用prototype来实现。

巴扎黑巴扎黑2749일 전1366

모든 응답(9)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-10 13:11:41

    《圣经 创世纪 1.27》

    神就照着自己的形像造人、乃是照着他的形像造男造女。

    可见,上帝造人使用了一个模板(他自己),是按照一个既定的蓝图造出了人类,这个蓝图就是类,就是 class。

    1996年7月5日多莉的诞生,改变了创造生命的过程。多莉不是被创造出来的,而是被克隆出来的,clone 就是复制的意思。

    用模板生成对象,那么要实现继承,只需要把模板继承下来,如果需要扩展父类,只需要在模板上添加一些东西,最后在用这个模板生成对象。比如 Java、C++、.net、……

    用 prototype 来实现继承,只需要把你继承的对象(注意不是)复制(克隆)过来,如果需要扩展,只需要直接在对象上添加东西。

    如果需要扩展多莉,为多莉增加翅膀,只需要把鸟的基因添加过来。但是我们并没有改变羊(class),而仅仅是改变了多莉(object)。

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 13:11:41

    熟读并背诵JavaScript高级程序设计第6章。。0.0

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-10 13:11:41


    我觉得这张图画的很形象。
    下面是我记得关于JavaScript原型的笔记
    http://fantasydai.github.io/2016/01/06/javaScript%E5%8E%9F%E5%9E%8B%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/

    회신하다
    0
  • 阿神

    阿神2017-04-10 13:11:41

    今天在翻收藏夹时,看到以前收藏的一篇内容。
    使用面向对象的技术创建高级 Web 应用程序 - http://msdn.microsoft.com/zh-cn/magazine/cc163419.aspx#S8
    这里面提到了继承,同时,文章提到的Douglas Crockford(貌似闭包第一提出人?!)也有分享“证明了JavaScript不仅能支持传统的继承还能应用其它的代码复用模式。” 一文,地址:http://www.crockford.com/javascript/inheritance.html

    회신하다
    0
  • 阿神

    阿神2017-04-10 13:11:41

    请移步http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html
    或者http://coolshell.cn/articles/6441.html

    회신하다
    0
  • PHPz

    PHPz2017-04-10 13:11:41

    问的有点问题,建议先看看prototype的原理,理解了prototype的原理自然知道js里面怎么写继承
    最重要的是,不要用c++,java,php等语言中的继承来对比理解prototype.
    js的基于prototype的继承完全是另一种玩法

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-10 13:11:41

    怎么体现?还是怎么 实现?实现的话,这哪里是一个评论框可以写完的,而且介绍的文章和书籍很多很多啊,网上一搜一坨一坨的啊。

    회신하다
    0
  • 阿神

    阿神2017-04-10 13:11:41

    楼主其实已经回答了自己的问题:能过prototype。 具体实现上,是通过__proto__attribute的指向。

    회신하다
    0
  • 阿神

    阿神2017-04-10 13:11:41

    其实javascript更类似于传统电路版中的时序程序

    회신하다
    0
  • 취소회신하다