收集于互联网 update at 2016年10月02日19:40:25
IIFE ("Immediately Invoked Function Expression")
(function(param){
})(params);
shim和polyfill
shim的意思是在一个老(旧)环境中模拟出一个新API,有时也叫做shiv,例如著名的html5shiv库。
polyfill的意思和shim差不多,2010年10月份Remy Sharp引进了这个概念,一个polyfill是一段代码或插件,用来提供浏览器不能提供的功能。程序库先检查浏览器是否支持某个API,如果不支持则加载对应的polyfill。
polyfill这个词最早来自居室装修领域,是一个英国产品,在美国称为Spackling Paste(刮墙用的,Spackle是美国抹墙粉的一个品牌。在中国称为腻子或填泥,腻子英文是putty,而填泥英文是filler)。可以这样理解:把旧的浏览器想象成一面有了裂痕的墙,这些polyfill会帮助我们把这面墙的裂痕抹平,桓我们一个光滑的墙壁。
shim的概念要比polyfill更大一些,可以将polyfill理解为专门兼容浏览器API的shim。
Remy这样帮我们理解polyfill:
如果浏览器X支持标准规定的功能,那么polyfill可以让浏览器Y的行为与浏览器X一样。
有人给Remy留言说,为什么不干脆美国化,把这种脚本称为Spackle?Remy答曰:因为我是英国人。 ;-)
参考