是否建议不要在事件处理程序范围之外使用变量?

时间:2016-08-12 03:47:59

标签: javascript jquery

对于jQuery或Javascript,如果它超出事件处理程序的范围,是否建议不要使用该变量?

实施例: 我应该避免这样做吗?

var $abc = $('#abc');
var $def = $('#def');
$('#myDiv').click(function () {
  $abc.show();
  $def.hide();
});

相反,它做得更好:

$('#myDiv').click(function () {
  $('#abc').show();
  $('#def').hide();
});

1 个答案:

答案 0 :(得分:-1)

事件处理程序应该尽可能少地了解您的代码,并且您应该在其中编写尽可能少的逻辑,如果您显示它不是一个最好使用函数范围之外的变量,因为在任何其他函数中,如果你错过了代码的变量,你的处理程序的所有内容都将被破坏。

在我看来,更好的方法就是这样。

function doSomething () {
   var $abc = $('#abc');
   var $def = $('#def');
}

//Use .on method for binding events, avoid shortcuts.
$('#myDiv').on("click", doSomething);

这里处理程序将调用一个具有作用域变量的函数,避免在处理程序中编写逻辑,如果你需要更改函数调用,你可以随时用其他函数调用替换它,证明这段代码是容易遵循和保持。