IE8兼容性解决forEach()、addEvntListener

Laughing
2017-06-30 / 0 评论 / 1,227 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年03月21日,已超过303天没有更新,若内容或图片失效,请留言反馈。

forEach是在第五版本里被添加到 ECMA-262 标准的;这样它可能在标准的其他实现中不存在,你可以在你调用forEach 之前 插入下面的代码,在本地不支持的情况下使用 forEach()。该算法是 ECMA-262 第5版中指定的算法。算法假定Object和TypeError拥有它们的初始值。callback.call 等价于Function.prototype.call()

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 < len ) {  
      var kValue;  
      if ( k in O ) {  
        kValue = O[ k ];  
        callback.call( T, kValue, k, O );  
      }  
      k++;  
    }  
  };  
}
1

评论 (0)

取消
  1. 头像
    八达
    Windows 7 · Google Chrome

    新年好呀,新年好呀,祝福博主新年好!

    回复
  2. 头像
    Laughing 作者
    iPhone · Safari
    @ qinnek

    相互帮助

    回复