Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下划线绑定在IE8中不起作用_Javascript_Jquery_Internet Explorer 8_Underscore.js - Fatal编程技术网

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

Javascript 下划线绑定在IE8中不起作用,javascript,jquery,internet-explorer-8,underscore.js,Javascript,Jquery,Internet Explorer 8,Underscore.js,我使用的是underline.js中的u.bind,但是它在IE8/9中不起作用 我理解MDN有一个解决方法,但不确定这是否可以应用于下划线库,或者下划线本身是否有修复方法 我试图实现的一个例子是: window.onload = _.bind(function() { this.product.quantityListing(); }, this); 编辑:我在IE8中使用了一个u.bind else where的实例,但当我想检查IE中是否加载了窗口时,它就不起作用了。.bi

我使用的是underline.js中的u.bind,但是它在IE8/9中不起作用

我理解MDN有一个解决方法,但不确定这是否可以应用于下划线库,或者下划线本身是否有修复方法

我试图实现的一个例子是:

window.onload = _.bind(function() { 

     this.product.quantityListing();
}, this);

编辑:我在IE8中使用了一个u.bind else where的实例,但当我想检查IE中是否加载了窗口时,它就不起作用了。

.bind
和MDN中的
函数#bind
垫片基本上做了相同的事情。如果使用MDN方法,则不需要使用下划线.js方法

您可以像这样使用MDN方法:

window.onload = (function() {
    this.product.quantityListing();
}).bind(this);
另一方面,如果在页面中包含下划线之前使用MDN垫片,则下划线将在必要时使用带垫片的版本


因此,如果在下划线之前包含填隙片,则可以使用任何您喜欢的方法。就个人而言,我坚持使用
函数#bind
,因为它有(非常轻微的)在本机支持下划线的浏览器中有更好的性能。

下划线的整个前提是它确实适用于IE8以及其他浏览器,但是您使用它的方式非常不寻常,如果不是完全错误的话。您可以这样使用它:

window.onload = _.bind(function() {
    this.product.quantityListing();
}, this);
也就是说,没有
new
关键字


\uu.bind()
的结果是一个闭包,将
绑定到该闭包上;文档加载完成后,它将调用具有预期上下文的函数。

为什么要使用
新的u.bind(fn)
这里?新的在这里似乎没什么用。下划线基本上是一个多填充物的集合。是的,这就是我一直走的路线,但我只是想避免这样做并使用u.bind-但是需要继续前进,所以必须足够注意下划线将使用函数。如果存在,则绑定如果MDN垫片在然后下划线将使用该垫片,因为它将创建Function.bind。如果代码库已经在使用该垫片,并且无法进行重构,则该垫片非常有用。这是我的错,新垫片不应该存在,但它仍然不起作用