//惰性载入函数:一个函数中的某一个部分在第一次执行的时候就可以处理了,以后执行不需要在重复的操作,我们就利用惰性思想来处理
//是js优化技巧里面最重要的技巧之一
var DOM = (function () {
var flag = "getElementsByClassName" in document ? true : false;
return {
likeToArray: function (likeArray) {
var ary = [];
if (flag) {
ary = [].slice.call(likeArray, 0);
} else {
for (var i = 0; i < likeArray.length; i++) {
ary.push(likeArray[i]);
}
}
return ary;
},
byClass: function (cName, context) {
context = context || document;
if (flag) {
return this.likeToArray(context.getElementsByClassName(cName));
}
var ary = [], reg = new RegExp("(?:^| +)" + cName + "(?: +|$)"), all = context.getElementsByTagName("*");
for (var i = 0; i < all.length; i++) {
var cur = all[i];
if (reg.test(cur.className)) {
ary.push(cur);
}
}
return ary;
}
};
})();
DOM.byClass("w1");
DOM.byClass("w2");