向前兼容


/**
* Converts object to a true array.
*/
makeArray: function(o) {
if (o === null || o === undefined) return [];
if (S.isArray(o)) return o;

// The strings and functions also have 'length'
if (typeof o.length !== 'number' || typeof o === 'string' || S.isFunction(o)) {
return [o];
}

// ie 不支持用 slice 转换 NodeList, 降级到普通方法
if (o.item && S.UA.ie) {
var ret = [], i = 0, len = o.length;
for (; i < len; ++i) {
ret[i] = o[i];
}
return ret;
}

// array-like
return AP.slice.call(o);
}

以前看到类似功能的函数时总是不明白 为什么大家都要用判断一下然后还用slice(直接for效率更高,而且还省两行代码)
后来再群里问[url=http://www.cnblogs.com/bluedream2009/]LC[/url],简单的四个字"向前兼容"
后来想想有时候自己的思想总是被束缚着,向前兼容这个思想也经常会用到,但是之前每次看上面这个问题时,总是想着”效率“,于是就看不到其它的东西了
[color=red]思考问题时不要总是朝一个方面想,换个方向,答案说不定就出来了[/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值