理解ie8fix& ES5,垫片

时间:2017-11-23 06:43:17

标签: javascript internet-explorer-8 es5-shim

我很难理解es5-shim和ie8fix到底是做什么的。
任何人都可以用简单的语言解释它们吗? (不要引用维基百科和其他来源!!)

1 个答案:

答案 0 :(得分:1)

ES5 mostly introduced new functionality rather than new syntax/features.这意味着大多数ES5代码都是ES3的有效语法。例如,Array.prototype.map只是向Array.prototype添加一个新函数,您可以自己做in ES3

Array.prototype.map = function ( callback, thisArg ) {

    var newArr = [];

    for ( var i = 0; i < this.length; i ++ )
        newArr.push( callback.call( thisArg || window, this[ i ], i, this ) );

    return newArr;

};

ES5-shim只为尽可能多的ES5功能执行此操作;在它不能的地方,它会尝试静默失败而不是暂停代码执行(例如使用Object.seal)。它没有为新语法(有限)或功能提供任何后向支持,因为这在一般意义上是不可能的(理论上你可以通过构建自己的解释器和劫持脚本/ eval来完成它)。

我不确定ie8fix是什么,但它可能类似于es5-shim,除了特别针对es5-shim没有覆盖的IE8。