锁定老帖子 主题:提速javascript开发(二)
该帖已经被评为良好帖
|
|||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||||||
发表时间:2007-03-10
例子:
【注意事项】:
1) 需要用这种继承的写法,请将下面的方法当作javascript 的api,不要覆盖。
3.3、活用闭包
所谓闭包,通俗的讲,使用函数的范围,已经不在函数的定义范围。
优点:进一步提高代码的封装性。
缺点:ie6的垃圾收集机制存在着bug,当进行ui编码时会出现一些问题。
闭包的特点
1、作为一个函数变量的一个引用 - 当函数返回时,其处于激活状态。
2、一个闭包就是当一个函数返回时,一个没有释放资源的栈区。 闭包的写法
3.4、函数式编程
它的基本特点是:将函数(或对象)赋值给一个变量。前面我们已经采用了这种写法。
优点:代码可读性好。适合web页ui方面的开发
错误的写法
正确的写法
附:javascript是非常灵活的: 1)基于对象的:有对象与类的概念,也有独立于对象的函数概念 2)解释型:请把握住运行时与时间轴这个概念:它能自动转化变量的类型与这个特点紧密相连;一段代码是当作函数,还是一个类,也与这个有关。 2)弱类型:会将变量自动转化为当前合适的类型或者基本数据类型,这个特点基于它是解释型的语言。 这些充分体现了javascript的灵活型。建议使用它,不要走极端:将其对象的一面在需要的时候充分运用,但没有必要任何情况下都这样做。所谓灵活:在不同的情况,可以有适合的方式可用。 (完) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2007-03-10
这是精华贴???
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2007-03-10
呵呵,javaeye的精华帖都这样,下次大伙就没必要来这里逛了。
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2007-03-10
居然不是精华了,那就评论一下:
先不论你这些API的优劣,首先,你严重的污染了JavaScript。 举例: 我原来有断代码: var map = {key1:1,key2:2}; for(var k in map){ alert(map[k]); } 加上你的程序之后,原来这段代码的行为就改变了! 有了这种风险,还有那位敢轻易使用这个? |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2007-03-10
每样东西都有适合它的位置——没有哪样东西是万能的,每样东西要用,也有它的成本。我们只在需要的时候用它。如果你这里要用到上面的一些方法,比如继承,那么你自然要往你的map对象中加东西。继承的意思,第一是复用。你如果决定要继承,alert(map[k])里的情况你自然要考虑。这就是所谓的成本!我从不指望没有成本的使用某些东西。无论哪门语言都有它的成本。
如果你要用spring或者别的框架,要写annotation的地方,要补充xml的地方,也要补充。你的代码如果要用这些框架,不可能因为自己的代码要补充annotation或者多写一些xml文件,或者要调整代码的一些细节。就说这些框架是垃圾!不太负责哦。请大家多指教 |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2007-03-10
zxmlgh 写道: 如果你要用spring或者别的框架,要写annotation的地方,要补充xml的地方,也要补充。你的代码如果要用这些框架,不可能因为自己的代码要补充annotation或者多写一些xml文件,或者要调整代码的一些细节。就说这些框架是垃圾!不太负责哦。请大家多指教 知道spring为什么会流行嘛? 重要的一点,他是无侵入的框架。 而你这个很多是都是没必要的侵入,而且是非常严重的侵入。 使用spring,我只需要增加点东西,不用把原来的代码东改西删。而使用你的东西,我的代码里遍地寻找一通,还得左右嘱咐身边的哥们,千万别。。。。 我值得吗? 代价嘛,能少一点就少一点。 Object是javascript的根本,我今天可算是第一个见敢于改动Object 原型的。 其实你这对Object原型的改动,是完全没必要的,继承于Object何干?Function足以! |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2007-03-10
说两句,我也投了良好帖,因为lz总结了很好的参考资料。但我也很想投隐藏,lz的这些东西很容易误导别人。
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2007-03-10
这些内容确实容易误导人,如果能在javascript语言实现这个级别,完成这些功能,会更好些。super与extends都是javascript的保留字,我想javascript语言的设计者,对这方面也是有自己的思考:要用这些,又没用。我不清楚这些设计者的思考是怎么样的,也不太清楚他们顾虑的是什么。既然保留了,那将来肯定是会实现这些功能的。这些编码模式平时自己用的也蛮爽,就暂时做个出头鸟吧! 恩楼上说在Function中做这些值得思考,多谢指点。不过这样做,不是不好而是会遇上一些问题,我暂时无法用语言组织。大家多提些意见,我们一起前进。 |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2007-03-11
zxmlgh 写道: 这些内容确实容易误导人,如果能在javascript语言实现这个级别,完成这些功能,会更好些。super与extends都是javascript的保留字,我想javascript语言的设计者,对这方面也是有自己的思考:要用这些,又没用。我不清楚这些设计者的思考是怎么样的,也不太清楚他们顾虑的是什么。既然保留了,那将来肯定是会实现这些功能的。这些编码模式平时自己用的也蛮爽,就暂时做个出头鸟吧! 恩楼上说在Function中做这些值得思考,多谢指点。不过这样做,不是不好而是会遇上一些问题,我暂时无法用语言组织。大家多提些意见,我们一起前进。 恩楼上说在Function中做这些值得思考,多谢指点。不过这样做,不是不好而是会遇上一些问题,我暂时无法用语言组织。大家多提些意见,我们一起前进。 能否稍微列举一点呢? |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2007-03-12
jindw 写道: zxmlgh 写道: 如果你要用spring或者别的框架,要写annotation的地方,要补充xml的地方,也要补充。你的代码如果要用这些框架,不可能因为自己的代码要补充annotation或者多写一些xml文件,或者要调整代码的一些细节。就说这些框架是垃圾!不太负责哦。请大家多指教 知道spring为什么会流行嘛? 重要的一点,他是无侵入的框架。 而你这个很多是都是没必要的侵入,而且是非常严重的侵入。 使用spring,我只需要增加点东西,不用把原来的代码东改西删。而使用你的东西,我的代码里遍地寻找一通,还得左右嘱咐身边的哥们,千万别。。。。 我值得吗? 代价嘛,能少一点就少一点。 Object是javascript的根本,我今天可算是第一个见敢于改动Object 原型的。 其实你这对Object原型的改动,是完全没必要的,继承于Object何干?Function足以! 比较赞同 jindw 的说法,其实javascript开发简单就好,封装方法是有必要的,但是没有必要这样。 |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||