首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MDN绑定polyfill是否存在风险?

使用MDN绑定polyfill是否存在风险?
EN

Stack Overflow用户
提问于 2013-03-18 21:53:44
回答 2查看 1.8K关注 0票数 7

我已经开发了一个需要bind方法的Javascript库。不幸的是,IE8不支持bind

有一个polyfill on the MDN website可以很好地工作。

我的问题是:这个polyfill和其他Javascript库之间是否存在问题或可能不兼容?

在任何情况下使用它都是安全的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-18 20:19:14

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Compatibility

对我来说,与原生bind最明显的区别是:

这样的函数一致性检查

如果你只使用JavaScript的“好的部分”,而不是开发一些框架的核心(对于IE8?),你不应该面对这个polyfill的任何问题。

票数 6
EN

Stack Overflow用户

发布于 2013-12-18 21:14:24

答案就在MDN页面上:

“如果您选择使用此部分实现,则不能依赖于那些行为偏离ECMA-262,第5版的情况!但是,请谨慎操作(并可能进行额外修改以满足特定需求),此部分实现可能是根据规范广泛实现bind()时的一个合理桥梁。”

MDN填充程序本身并没有什么问题。但是,如果您选择使用他们的填充程序,请确保它不能被其他库覆盖。不久前,我遇到了一个问题,Strophe就是这么做的,并用另一个填充程序替换了一个填充程序。

我倾向于使用下划线来覆盖这类内容,但也有其他选项,如es5shim。使用下划线,您有一个名为'.bind‘的方法(您已经猜到了),它的工作方式与MDN的填充程序略有不同(使用'new’调用)。下划线还有一个很棒的方法,叫做'.partial‘,在你不想改变'this’的值而只是部分应用参数的情况下,这个方法很有用。

我在这里要说的是,也许可以看看库中受到适当保护/封装的东西,而不是垫片。如果您的目标是像IE8这样的浏览器,那么在任何情况下,您都有可能需要多个填充程序。

最后,也是不太重要的,请查看以下网站的性能测试:http://jsperf.com/browser-vs-es5-shim-vs-mdn-shim

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15478539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档