-1

我很难理解 es5-shim 和 ie8fix 到底是做什么的。
谁能用简单的语言解释一下?
(不要只引用维基百科和其他来源!!)

4

1 回答 1

1

ES5 主要引入了新功能,而不是新的语法/特性。这意味着大多数 ES5 代码是 ES3 的有效语法。例如,Array.prototype.map只需向 Array.prototype 添加一个新函数,您可以在 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 函数执行此操作;如果不能,它会尝试静默失败而不是停止代码执行(例如 with Object.seal)。它不提供对新语法(有限)或功能的任何向后支持,因为这在一般意义上是不可能的(理论上你可以通过构建自己的解释器和劫持脚本/评估来做到这一点)。

我不确定 ie8fix 是什么,但它可能类似于 es5-shim,除了专门针对 es5-shim 不涵盖的 IE8。

于 2017-11-23T07:08:51.020 回答