Backbone.js事件处理程序命名的最佳实践
假设我在一个视图中有一个函数,该函数在某种状态发生更改时触发。 给它命名最合适,为什么?
- 状态更改
- 状态已更改
- onStateChange
- onStateChanged
解决方案
我个人更喜欢使用onEventName
名称,保持DOM事件处理程序的本机命名约定。
LIKEmyElement.onclick = function() { /* ... */ }
FORclick
事件。
因此对于myEvent
,我使用名为onMyEvent
的处理程序。
如果我有事件stateChange
,则我将使用onStateChange
处理程序。
但实际上,这个问题对于每个开发团队以及团队/公司内部的代码风格约定更为具体。
因此,这类问题的主要目标是在所有部分保持代码样式相同,以确保可读性。
因此,如果您在团队中工作,只需遵守团队的代码编写约定,如果您单独处理现有代码,则尽量保持其代码样式(当然,如果该样式不是明显难看的话)。
更新:了解。
事件是什么?大致是在程序外部或内部发起的操作,换句话说,系统中发生了一些事情,例如一些状态变化(键盘、鼠标、I/O设备的状态等)。无论如何(用户单击鼠标或某个程序将鼠标单击信号发送到系统)。
假设浏览器窗口被订阅以获得有关某些事件的通知,并且操作系统尽快将它们发送给它,我们将假设在发生事情的同时。因此,如果用户在浏览器窗口处于活动状态且文档具有焦点时单击鼠标,浏览器会提示文档触发click
事件。这里,我们的onclick
处理程序开始它的调用。换句话说,系统告诉我们现在发生了某种状态的更改。我们正在处理此更改,而不是在处理通知我们状态已更改的事实。
假设我们的处理程序名为onClicked
.,因为处理程序的名称以过去式出现,我们可以得到一个合理的问题:"当被点击时,它发生了多久?它被点击了多少次?嗯,也许处理这个动作(或动作?)已经太晚了……"所以这个名字告诉我们在过去的某个时间发生了一些事情。
相反,当我们的处理程序命名为onClick
时,显然是click
事件只触发了一次,并且我们立即收到了通知。我们将处理单击事件-告知我们鼠标状态正在发生变化的信息(不是鼠标已单击,而是单击事件)。
因此,过去时的名称更适合于我们需要检查某个状态是否已更改的情况。例如,如果变量存储state = 1
,我们可以调用isStateChanged();
函数,将state
变量中的值与当前时刻的实际值进行比较。在这里,过去式是很好的命名选择。
相关文章