我很难理解Es5-Shim和Ie8fix做什么。
谁能用简单的语言解释它们?
(不仅引用Wikipedia和其他来源!!)
es5主要引入了新功能,而不是新的语法/功能。这意味着大多数ES5代码是ES3的有效语法。例如,Array.prototype.map
只需在array.protype中添加一个新功能,您可以在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。