繁体   English   中英

下划线绑定在IE8中不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM