老师这里的value = cb.call(obj[i], i, obj[i]);里第一个参数为啥写obj[i]啊
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | function each(obj, cb) { var value; if (Array.isArray(obj)) { for ( var i = 0; i < obj.length; ++i) { value = cb.call(obj[i], i, obj[i]); if (value === false ) { break ; } } } else { for ( var i in obj) { value = cb.call(obj[i], i, obj[i]); if (value === false ) { break ; } } } } each([1, 2, 3], function (index, value) { console.log(index, value); }); each({a: 1, b: 2}, function (index, value) { console.log(index, value); }); // 0 1 // 1 2 // 2 3 // a 1 // b 2 |
源自:面向对象
9-11 迭代器模式
13
收起
正在回答 回答被采纳积分+1
1回答
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧