Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每个addEventListener是否应使用新变量?_Javascript_Html - Fatal编程技术网

Javascript 每个addEventListener是否应使用新变量?

Javascript 每个addEventListener是否应使用新变量?,javascript,html,Javascript,Html,我正在读一本关于向HTML元素添加事件侦听器的书,我注意到所有的变量都称为formElement,然后下一个变量也是formElement。您可以每次使用相同的变量,还是每次使用不同的变量名。文档getElementByIdtextBox将HTML元素的该值分配给变量,然后使用keyup事件添加EventListener 问题:每个addEventListner是否应使用不同的变量 从我看到的情况来看,您可以反复使用同一个变量并附加keylistener。。。到新的addEventListene

我正在读一本关于向HTML元素添加事件侦听器的书,我注意到所有的变量都称为formElement,然后下一个变量也是formElement。您可以每次使用相同的变量,还是每次使用不同的变量名。文档getElementByIdtextBox将HTML元素的该值分配给变量,然后使用keyup事件添加EventListener

问题:每个addEventListner是否应使用不同的变量

从我看到的情况来看,您可以反复使用同一个变量并附加keylistener。。。到新的addEventListener

代码:


就像软件工程中的所有事情一样,这真的要视情况而定。在这段代码中,我甚至不使用变量,因为每个变量只使用一次。我会这样做:

document.getElementById("canvasOne").theCanvas.getContext("2d");
document.getElementById("textBox").addEventListener('keyup', textBoxChanged, false);
document.getElementById("fillOrStroke").addEventListener('change', fillOrStrokeChanged, false);
document.getElementById("textSize").addEventListener('change', textSizeChanged, false);
document.getElementById("textFillColor").addEventListener('change', textFillColorChanged, false);
当然,这假设每个变量使用一次。这确实是我个人的观点,但我不喜欢把代码和只使用一次的变量混在一起,特别是当每个变量都在一个模式中使用时。当然,在我看来,当像上面这样做时,模式变得更具可读性

然而,我也不喜欢为不同的目的回收变量。如果需要多次引用变量,请执行空检查:

var canvas = document.getElementById('canvasOne');
var context;

if (canvas != null) {
    context = canvas.getContext('2d');
}

然后我会对所有内容使用一个单独的变量,这样就可以清楚地知道哪些对象在什么时候存在,它们在什么时候引用了什么。

我不确定addEventListener是否真的相关。我认为从更广泛的角度来看,这是一个好问题。什么时候循环使用变量是合适的还是不合适的?当你谈到循环使用变量时,我认为当一个变量不用于其当前内容时。比如说baseBallScore不会用于任何进一步的评分活动,那么它可以在Javascript中重新命名。但在这种情况下,每次都使用formElement添加addEventListener。。。一个特定的变量。因此,在这种情况下,变量在用于添加动作事件侦听器后不再需要,因此可以循环使用,并在另一个添加事件侦听器中使用,而无需再次用于刚刚使用它的动作事件侦听器。我认为对于代码可读性来说,最好为每个侦听器使用不同的变量,但我认为在调用getElementById之后这并不重要,因为使用相同getElementById的是同一类型变量,或者在Javascript中是同一类型object的变量。
var canvas = document.getElementById('canvasOne');
var context;

if (canvas != null) {
    context = canvas.getContext('2d');
}