Polyfill是什么啊 为什么他拿给你解决兼容问题

Polyfill是什么啊 为什么他拿给你解决兼容问题

阅读 29.3k
4 个回答

Polyfill你可以理解为“腻子”,就是装修的时候,可以把缺损的地方填充抹平。

举个例子,html5的storage(session,local), 不同浏览器,不同版本,有些支持,有些不支持。

我们又想使用这个特性,怎么办?

有些人就写对应的Polyfill(Polyfill有很多),帮你把这些差异化抹平,不支持的变得支持了(简单来讲,写些代码判断当前浏览器有没有这个功能,没有的话,就写一些支持的补丁代码)。

你只需要把需要的Polyfill引入到你的程序里,就可以了。

比如下面就是对html5各个特性支持的Polyfill,你需要哪个,就引入哪个。当然,你也可以自己写 :)
https://github.com/Modernizr/...

没那么复杂……
举个例子,有些旧浏览器不支持Number.isNaN方法,Polyfill就可以是这样的:

if(!Number.isNaN) {
    Number.isNaN = function(num) {
        return(num !== num);
    }
}

啥意思呢,就是假如浏览器没有Number.isNaN方法,那咱们就给它添加上去,所谓Polyfill就是这样解决API的兼容问题的。

有些方法你不支持,Polyfill使用你支持的方法帮你实现了这些你不支持的方法。

垫片,就是帮你加一层东西来解决问题,不光是兼容性问题,pollyfill是个概念

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏