jQuery .data vs eventData

cra*_*ain 11 jquery events

在设置事件处理程序(提交,单击,按键,等等)时,将数据提供给处理程序并在处理程序中使用它的最快和最有效的方法是什么?我应该做的事情如下:

$obj.data({name: value, ...});

$obj.click(function(e){
  var $this = $(e.target),
    name = $this.data(name);
});
Run Code Online (Sandbox Code Playgroud)

或者做这样的事情会更好:

$obj.bind('click', {name: value}, function(e) {
  var $this = $(e.target),
    name = e.data.name;
});
Run Code Online (Sandbox Code Playgroud)

我还有其他考虑因素吗?

Nic*_*ver 10

无论哪种方式都有效,您将相同的数据存储在稍微不同的位置,尽管您可以在$.data()不创建jQuery对象的情况下使用相同的数据,如下所示:

$obj.data({ name: value });
$obj.click(function(e) {
  var name = $.data(this, 'name');
});
Run Code Online (Sandbox Code Playgroud)

就个人而言,我发现第二个更清洁,它的等效版本总体上也更短:

$obj.bind('click', {name: value}, function(e) {
   var name = e.data.name;
});
Run Code Online (Sandbox Code Playgroud)