forEach
是在第五版本里被添加到 ECMA-262 标准的;这样它可能在标准的其他实现中不存在,你可以在你调用 forEach
之前 插入下面的代码,在本地不支持的情况下使用 forEach()
。该算法是 ECMA-262 第5版中指定的算法。算法假定Object
和TypeError
拥有它们的初始值。callback.call
等价于Function.prototype.call()
。
<code class="language-javascript">if ( !Array.prototype.forEach ) { Array.prototype.forEach = function forEach( callback, thisArg ) { var T, k; if ( this == null ) { throw new TypeError( "this is null or not defined" ); } var O = Object(this); var len = O.length >>> 0; if ( typeof callback !== "function" ) { throw new TypeError( callback + " is not a function" ); } if ( arguments.length > 1 ) { T = thisArg; } k = 0; while( k </code>