javascript是面向对象的,怎么体现javascript的继承关系?
巴扎黑
巴扎黑 2017-04-10 13:09:41
0
9
1398

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

巴扎黑
巴扎黑

reply all(9)
Ty80

《圣经 创世纪 1.27》

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

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

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

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

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

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

伊谢尔伦

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

小葫芦


我觉得这张图画的很形象。
下面是我记得关于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/

阿神

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

阿神

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

PHPzhong

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

Ty80

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

阿神

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

阿神

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

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template