欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

向前兼容

程序员文章站 2022-04-05 10:34:43
...

/**
* 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]
相关标签: IE