锁定老帖子 主题:JavaScript里面真的需要继承吗?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (18)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-30
为什么要继承呢?因为代码重用,javascript代码重用方法有很多,所以嘛,继承只是一种选择,并且不是最好的选择,javascript: the good part,这本书不错,最近正在看。
|
|
返回顶楼 | |
发表时间:2009-04-30
这个东西很难说,就像尼古拉斯说的一样,很多 js 程序员不用继承一样一写多年,可是当面对到UI的设计和各式各样的lib构建的时候,我想LZ就会明白为什么要继承.另外,反射是OO编程里必须的,用书上的一句原话,因为 js 是弱对象类型,如果一个方法中传入了一个值,你不做处理的话,如果 ASDBSADF 这样的东西,也能当作邮编么 ?? 浅谈,纯属个人看法.
|
|
返回顶楼 | |
发表时间:2009-04-30
典型的因噎废食
|
|
返回顶楼 | |
发表时间:2009-04-30
yuan 写道 分明是继承的使用有问题,偏要归咎到语言上。 那JavaScript的function原生的prototype属性是做什么的呢? 同意同意,不能把责任全部推到js的继承上 不知道LZ看过这篇文章没:JavaScript:世界上最被误解的语言 |
|
返回顶楼 | |
发表时间:2009-05-01
最后修改:2009-05-01
ECMA script (含 JavaScript,ActionScript 等) 是基于原型 ( prototype based ) 的面向对象编程,
在 ECMA script 里生搬硬套基于类 ( class based ) 的面向对象编程那一套是行不通的。 注意1:这和动态类型/静态类型没关系,有基于原型的的静态类型语言 ( Omega ),也有基于类的动态类型语言 ( smalltalk ) 注意2:类 ( class ) 不等于类型 ( type ),虽然某些语言中两者是等价的…… 下面为了方便表述,把 ...原型... 称为 POO,把 ...类... 称为 COO。 POO 没有 COO 流行,所以 COO 已经差不多和面向对象这个词等价了,很多人一讲到 OO 就想到封装、继承、多态。 但事实呢,继承只是 COO 复用代码的一种方法,而 POO 对应的手段是复制原型。 COO 强调类的不变性,而 POO 没有类,只有原型。 原型是可以运行时修改的,类一般不可以(有些语言可以通过非常手段如 classLoader 在运行时进行类的修改)。 POO 和 COO 哪个更 NB 的争论是没有结果的。但是我觉得 POO 更灵活,更适合脚本语言使用。 补充: POO 和 COO 的分类不是绝对的,譬如 C 语言和 Ruby 既能做 POO 的设计,也能做 COO 的设计。 再补充: OO 根本不学院派,学院派才不鸟 OO 呢。 |
|
返回顶楼 | |
发表时间:2009-05-01
这是一个老问题了。其实答案很简单:
1. 我可以不用继承。js高手都可以不用继承。——废话,如果不用继承就不成,那还是js高手吗? 2. 人们需要“类”(注意类和继承有差别,但是姑且认为楼主指的是类及相关的继承等)。这是不以js高手的意志为转移的事实。框架和代码库给出了最好的答案。为什么几乎所有的框架都要给出类和继承的方案,说明人民有需要。 3. js过去没有,不代表它不应该有。js的现状只是表明了10年前开始的历史结果,不代表它应该就是如此。Brenden Eich(JS之父)在之前ES4和ES3.1的争论中所阐述的观点其实很有道理(具体请自行google)。虽然现在ES edition 5的最终结果是一个渐进的折中方案,但是我本人更赞同BE,而不是以Yahoo的DC和微软为代表的补丁观点。现在的结果只是一个政治正确的妥协。 |
|
返回顶楼 | |
发表时间:2009-05-02
js调试太恶心了 好烦这个
最近这个项目每个页面都快2000行js 可是写死我 又不好调试 烦 |
|
返回顶楼 | |
发表时间:2009-05-02
whaosoft 写道 js调试太恶心了 好烦这个
最近这个项目每个页面都快2000行js 可是写死我 又不好调试 烦 哈哈,js很好调试,~~ |
|
返回顶楼 | |
发表时间:2009-05-02
firebug还好,ie下用什么工具?
|
|
返回顶楼 | |
发表时间:2009-05-02
Else 写道 firebug还好,ie下用什么工具?
ie8自带的调试工具,调试js比firebug还方便 |
|
返回顶楼 | |