|
锁定老贴子 主题:莫要对一个框架轻下结论
精华帖 (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) 那不就是颠倒了,我的举例不太缺德吧,哈哈…… |
|
| 返回顶楼 | |
|
最后更新时间: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。 不错 这样的分级令人印象深刻! |
|
| 返回顶楼 | |
|
最后更新时间: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里其实没几个扩展是有用的 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-15
有的人是不是自掌嘴巴了,同样你也不熟悉moo,它的$$方法返回的是Elements,所有Element有的扩展方法都自动赋予Elements,所以可以直接:
$$('.star-rating').addClass('active'); 另外,把moo分为0级的同学,自己看看moo.fx,当然在moo中它是Fx.xxx系列 对于initialize,我觉得它的作用主要表现在规范性 所以,是的,在不了解某个框架前最好不要轻易对它下定论 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-16
我佛山人 写道 有的人是不是自掌嘴巴了,同样你也不熟悉moo,它的$$方法返回的是Elements,所有Element有的扩展方法都自动赋予Elements,所以可以直接:
$$('.star-rating').addClass('active'); 另外,把moo分为0级的同学,自己看看moo.fx,当然在moo中它是Fx.xxx系列 对于initialize,我觉得它的作用主要表现在规范性 所以,是的,在不了解某个框架前最好不要轻易对它下定论 分为0级也没什么贬义吧 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-16
哦,忘了mootools的一些效果库了,上边说错了。
我这么分是为了清晰的区分和比较框架,他们最主要的区别就是在0级上,1 2大同小异。0是个基础的东西,是个起点。
这不是结论,更不是定论,看法而已。
|
|
| 返回顶楼 | |





