数组貌似也可以用for in 遍历,分别处理有必要吗

来源:2-11 jQuery的each迭代器

yzlcd

2014-11-22 18:32

if (isArray) {
           for (; i < length; i++) {
               value = callback.apply(obj[i], args);

               if (value === false) {
                   break;
               }
           }
       } else {
           for (i in obj) {
               value = callback.apply(obj[i], args);

               if (value === false) {
                   break;
               }
           }

}


写回答 关注

2回答

  • paraofheaven
    2016-04-07 11:23:31

    厉害厉害

  • 艾伦Aaron
    2014-11-24 09:32:27

    首先做框架要考虑兼容与性能问题

    for in 语句对数组对象进行遍历潜在的bug在于:如果原生Array类被其他的js脚本库进行了原型扩展(比如多加一个toJSON方法即Array.prototype.toJSON=xxxx),那么用for in遍历扩展后的Array对象的逻辑将与遍历原生Array对象的逻辑发生差异。

jQuery源码解析(架构与依赖模块)

由浅入深地剖析jQuery库的设计与实现,揭开框架背后的秘密

84047 学习 · 280 问题

查看课程

相似问题