我应该将其绑定到 jQuery on() 或处理程序的返回值吗?

问题描述 投票:0回答:1

当我从 jQuery.proxy() 迁移出来时,我发现了两种使用 Javascript 原生的方法

bind

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

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

据我所知,它们都做同样的事情,但我担心后者可能会导致

on()
(或其位置的任何功能)出现问题。前一种语法是我从
$.proxy()
开始使用的语法,在我看来它是显式绑定到处理程序的,所以我倾向于使用该语法。

这两条线实际上在做同样的事情吗?如果没有,哪个是更安全的选择?

javascript jquery bind
1个回答
7
投票

第一种情况:

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

调用本机

bind
,它将按您的预期工作。

第二种情况,

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

jQuery

on()
方法将返回事件绑定到的 jQuery 对象,当您在 jQuery 对象上调用
bind()
时,将调用 jquery
bind()
方法,并且它不会执行本机操作绑定可以。

© www.soinside.com 2019 - 2024. All rights reserved.