我很难理解 es5-shim 和 ie8fix 到底是做什么的。
谁能用简单的语言解释一下?
(不要只引用维基百科和其他来源!!)
问问题
81 次
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 回答