论坛首页 AJAX版 JavaScript

莫要对一个框架轻下结论

浏览 3785 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-05-15
很抱歉,刚看了1.6代码,Object.extend(Array.prototype, {昨天第一眼看错了,以为让Object拥有Array的方法,所以觉得莫名其妙。

不是那样的话,而是用一种便于书写的方式扩展Array的方法的话,没什么问题吧。

补充:
returnValue=object.method(argument);
食物从argument进入,经过method处理后的便便由object排出。
如果这样也行:
returnValue=argument.method(object)
那不就是颠倒了,我的举例不太缺德吧,哈哈……
   
0 请登录后投票
最后更新时间:2008-05-15
引用
从框架角度分级的话:
0级(base,扩展原有对象的方法,要精简,包括Ajax部分)
1级(effect,增加常用效果转换函数,如tween、drag、maskLayer、fade等)
2级(component,对话框、列表、树、日历等)
3级(application,用户定义能实现一定功能的模块)

一些框架只做0级prototype1.4/mootools1.2,和1级jquery1.2,一些做到了3级,如EXT 1.0 2.0。

不错 这样的分级令人印象深刻!
   
0 请登录后投票
最后更新时间:2008-05-15
s79 写道
很抱歉,刚看了1.6代码,Object.extend(Array.prototype, {昨天第一眼看错了,以为让Object拥有Array的方法,所以觉得莫名其妙。

不是那样的话,而是用一种便于书写的方式扩展Array的方法的话,没什么问题吧。

补充:
returnValue=object.method(argument);
食物从argument进入,经过method处理后的便便由object排出。
如果这样也行:
returnValue=argument.method(object)
那不就是颠倒了,我的举例不太缺德吧,哈哈……

话是没错 也别给人家说的太......

Object.extend相当于一个挂到Object上的函数 这样截确实容易误会

Array那个 难道你不记得Prototype的Array扩展导致Array的for in枚举出乱七八糟的东西被骂了多久么?(当然prototype最出名的是之前的版本中扩展Object,导致大家自己写的类莫名其妙地多出几个方法)虽然for in Array并非良好的习惯。

扩展原生对象的prototype是一种非常拙劣的行为 它造成了潜在的命名冲突危险 而且它是强迫大家接受的
更何况Prototype.js在扩展的时候没用大脑 全凭自己喜好 所以也就有 一不小心嘴里也XXXXXX的情况发生了

当然那个match只是一个极端的情况 prototype里其实没几个扩展是有用的
   
0 请登录后投票
最后更新时间:2008-05-15
有的人是不是自掌嘴巴了,同样你也不熟悉moo,它的$$方法返回的是Elements,所有Element有的扩展方法都自动赋予Elements,所以可以直接:
$$('.star-rating').addClass('active');  
另外,把moo分为0级的同学,自己看看moo.fx,当然在moo中它是Fx.xxx系列

对于initialize,我觉得它的作用主要表现在规范性

所以,是的,在不了解某个框架前最好不要轻易对它下定论
   
0 请登录后投票
最后更新时间:2008-05-16
我佛山人 写道
有的人是不是自掌嘴巴了,同样你也不熟悉moo,它的$$方法返回的是Elements,所有Element有的扩展方法都自动赋予Elements,所以可以直接:
$$('.star-rating').addClass('active');  
另外,把moo分为0级的同学,自己看看moo.fx,当然在moo中它是Fx.xxx系列

对于initialize,我觉得它的作用主要表现在规范性

所以,是的,在不了解某个框架前最好不要轻易对它下定论


分为0级也没什么贬义吧
   
0 请登录后投票
最后更新时间:2008-05-16
哦,忘了mootools的一些效果库了,上边说错了。 我这么分是为了清晰的区分和比较框架,他们最主要的区别就是在0级上,1 2大同小异。0是个基础的东西,是个起点。 这不是结论,更不是定论,看法而已。
   
0 请登录后投票
论坛首页 AJAX版 JavaScript

跳转论坛:
JavaEye推荐