[07/9/28] 总结一下mootools的瑕疵吧 (持续更新)

这个帖子我会慢慢总结一些不足,欢迎大家补充,并即时更正我的错误 :).

(这些不足如果在新版本里已经修正,我会标出.svn上的版本我不做考虑)

1 each方法无法break.
例子: 找出一个数组中的第一个偶数.
var myarr=[1,2,3,15,5,21,22];
var rs=0;

myarr.each(function(val,idx){
if (val%2 ==0 ) {
rs=val;
return ; //return不是我想要的,我想在这里方便快捷的结束each,咋办?
}
});

目前我想到的是 使用 throw抛出一个异常,不知道各位还有更好的解决方案没.
(当然修改moo源代码可以得到更好的方案)

2 Element对象没有setValue方法.
这个比较不能忍啊 呵呵,想设置页面表单域的值都要自己想办法,不理解为啥!


3 Json.Remote对象里的hardcode.
见代码里的这句大家就明白了:
send: function(obj){
return this.parent(this.url, 'json=' + Json.toString(obj));
}
我想用这个方法,那服务端只能接受名为json的json序列化字符串. 太不灵活了.

4 Json.Remote的send是否应该考虑支持发送多个json串呢?

5. Class 里的一个bug
[code]
var Class = function(properties){
var klass = function(){
return (arguments[0] !== null && this.initialize && $type(this.initialize) == 'function') ? this.initialize.apply(this, arguments) : this;
};
$extend(klass, this);
klass.prototype = properties;
klass.constructor = Class;
return klass;
};
[/code]
如果 我要传的第一个参数就是null时 那么整个类机制将失效

例如 一个类的构造方法有两个参数 ,而他又有一个子类 子类也是如此
我在创建子类的时候,如果构造方法的第一个参数我就是要传null,
那么在子类里调用父类的方法将失败.
修改方法 将 null 换成其他的特殊值.
在新版本moo里 用的是 moo定义的 $empty
arguments[0] !== $empty
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值