jQuery源码分析-----迭代器each

来源:互联网 发布:windows禁止启动程序 编辑:程序博客网 时间:2024/06/07 19:12

迭代器each

是否有参数args


    • 数组处理
    • 对象处理

    • 数组处理
    • 对象处理
function each(obj, callback, args) {  var value,  i = 0,  length = obj.length,  isArray = obj instanceof Array;  if (args) {      if (isArray) {          for (; i < length; i++) {                value = callback.call(obj[ i ],i,obj[ i ], args); //jquery源码为value = callback.apply(obj[ i ], args),但我觉得有args的时候也不能忘记传递索引值吧!               if (value === false) {                     break;                }          }     } else {             for (i in obj) {                  value = callback.call(obj[ i ],i,obj[ i ], args);//jquery源码为value = callback.apply(obj[ i ], args);                  if (value === false) {                          break;                    }              }     }} else {    if (isArray) {        for (; i < length; i++) {            value = callback.call(obj[i], i, obj[i]);            if (value === false) {                break;            }        }    } else {        for (i in obj) {            value = callback.call(obj[i], i, obj[i]);            if (value === false) {                break;            }        }    }}return obj;}
原创粉丝点击