JavaScript Function.bind():默认此参数

时间:2016-08-16 08:14:00

标签: javascript function event-handling function-binding

bind方法的第一个参数是新的this值。问题是这似乎取代了自然的this值。特别是,如果用于事件侦听器,则它不再是触发元素。

例如:

var h1=document.querySelector('h1')
h1.onclick=doit.bind(this,42);  //  or null, or h1
function doit(a) {
    alert(this);                //  Not automatically the calling element
    alert(a);
}

现在我知道在这种情况下我可以将第一个参数设置为元素h1;我也可以使用event.target来获得实际目标。然而,这并不总是方便的,例如在为多个或匿名元素分配事件监听器时。

问题是,是否有一种简单的方法可以告诉bind使用默认值this

由于

注意:严格地是Use bound this and this of function scope in a function bound with bind()的副本,因为(a)问题是询问是否可以绑定多个版本的this和(b) )接受的答案涉及使用我自己提到的event.currentTarget或者编写一种新方法,这不是我所要求的。

然而,答案可能是否定的,不可能做到,所以我不会试图重新打开这个问题。

0 个答案:

没有答案