D G*_*D G 7 javascript jquery bind
bind当我从jQuery.proxy()迁移时,我发现了两种使用Javascript本机的方法:
this.thing.on(event, someHandler.bind(this))
Run Code Online (Sandbox Code Playgroud)
和
this.thing.on(event, someHandler).bind(this)
Run Code Online (Sandbox Code Playgroud)
据我所知,他们都做同样的事情,但我担心后者可能导致on()(或任何功能)的问题.前面的语法是我习惯的$.proxy(),对我来说看起来它是显式绑定到处理程序,所以我倾向于使用该语法.
这两条线实际上是一样的吗?如果没有,哪个更安全呢?
在第一种情况下:
this.thing.on(event, someHandler.bind(this))
Run Code Online (Sandbox Code Playgroud)
bind调用本机,它将按预期工作.
在第二种情况下,
this.thing.on(event, someHandler).bind(this)
Run Code Online (Sandbox Code Playgroud)
jQuery on()方法将返回绑定事件bind()的jQuery对象,当您调用jQuery对象时,bind()正在调用jquery 方法,并且它不执行native bind所做的操作.