forEach = function( ary, fn ){
for ( var i = 0, l = ary.length; i < l; i++ ){
var c = ary[ i ];
if ( fn.call( c, i, c ) === false ){
return false;
}
}
}
forEach([1,2,3],function(i,el){
console.log(i,el);
});
forEach = function( ary, fn ){
for ( var i = 0, l = ary.length; i < l; i++ ){
var c = ary[ i ];
if ( fn.call( c, i, c ) === false ){
return false;
}
}
}
forEach([1,2,3],function(i,el){
console.log(i,el);
});
13 回答12.7k 阅读
7 回答1.8k 阅读
5 回答1.3k 阅读
3 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
5 回答2.2k 阅读
用call是为了保证this指向的是迭代对象自身。
参考链接
上个代码进一步说明一下:
然后是没有call的版本:
可以打开chrome的console验证一下,(⊙o⊙)…