什么是正确的Javascript绑定语法?

时间:2016-04-19 13:28:16

标签: javascript jquery bind

当我从jQuery.proxy()迁移时,我发现了两种使用Javascript本机bind的方法:

this.thing.on(event, someHandler.bind(this))

this.thing.on(event, someHandler).bind(this)

据我所知,他们都做同样的事情,但我担心后者可能会导致on()(或其中的任何功能)出现问题。前一种语法是我从$.proxy()习惯的,对我来说看起来它是显式绑定到处理程序的,所以我倾向于使用该语法。

这两条线实际上是一样的吗?如果没有,哪个更安全呢?

1 个答案:

答案 0 :(得分:7)

在第一种情况下:

this.thing.on(event, someHandler.bind(this))

调用原生bind,它会按预期工作。

在第二种情况下,

this.thing.on(event, someHandler).bind(this)

jQuery on()方法将返回绑定事件的jQuery对象,当您在jQuery对象上调用bind()时,正在调用jquery bind()方法,并且不做本机绑定的作用。