[英]Underscore bind not work in IE8
我正在使用来自underscore.js的_.bind,但是它在IE8 / 9中不起作用。
我理解MDN有一个解决方法( MDN Polyfill - 但不确定这是否可以应用于下划线库,或者是否在下划线本身中有此修复
我想要实现的一个例子是:
window.onload = _.bind(function() {
this.product.quantityListing();
}, this);
编辑:我正在使用_.bind其他地方的实例,它在IE8中工作 - 但是当我想检查窗口已加载到IE时,它只是不工作。
_.bind
和来自MDN的Function#bind
shim基本上做同样的事情。 如果使用MDN方法,则无需使用Underscore.js方法。
你会像这样使用MDN方法:
window.onload = (function() {
this.product.quantityListing();
}).bind(this);
另一方面,如果在页面中包含Underscore之前使用MDN垫片,则Underscore将在必要时使用垫片版本。
因此,如果你在Underscore之前加入垫片,你可以使用你喜欢的任何一个。 就个人而言,我坚持使用Function#bind
,因为它在本机支持它的浏览器中具有(非常轻微)更好的性能。
Underscore的整个前提是它确实适用于IE8以及其他浏览器,但是如果不是完全错误的话,你使用它的方式是非常不寻常的。 你会像这样使用它:
window.onload = _.bind(function() {
this.product.quantityListing();
}, this);
即没有new
关键字。
的结果_.bind()
是一个封闭其上this
是结合; 一旦文档完成加载,它将调用具有预期上下文的函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.