ホームページ  >  に質問  >  本文

何为垫片?垫片是一种什么概念在js中?

如题,往前辈们解惑!!!!!!!

大家讲道理大家讲道理2901日前1043

全員に返信(2)返信します

  • 大家讲道理

    大家讲道理2016-11-09 13:56:51

    简单说,shim或polyfill都是为了解决兼容性问题(,有时候还会为了抹平浏览器差异)而存在的。


    比如最近ES6标准中新出的promise对象,有些老的浏览器没有这个对象,或者各个浏览器的实现可能不一致,那就需要引入polyfill来解决兼容性问题。(对应的polyfill为es6-promise)。


    当然你也可以自己实现一个。


    其它的示例,可以看一下babel-polyfill,core-js。算是比较有名的库。


    返事
    0
  • 大家讲道理

    大家讲道理2016-11-09 13:56:41

    通俗来讲,JS垫片就是,在低级环境中用高级语法时,在低级环境中手动实现的高级功能,模拟高级环境


    打个比方, 你写的的JS代码是一张桌子,有4个语法腿。但4个腿都是用的es3,一样长,这时候桌子非常稳当。但如果四个腿不一样长(一个腿是es5),桌子就有随时倒塌的可能,甚至不可用。这个时候你就需要垫片,把es3腿垫平,与es5一样高,你的桌面才能稳当的使用。


    示例es5中的关于数组的forEach功能,在es3中不可用,你可以在es3中用Array.prototype.forEach=fn()来实现,此时,你自己实现的这个forEach就属于垫片


    返事
    0
  • キャンセル返事