我正在修复与丢失鼠标事件相关的错误,有两种方法可以修复它。其中一个看起来效率很高,需要一行代码更改(我知道更少的代码与效率无关)。另一个看起来更好的代码可读性&文档,但它违反了DRY原则。
这是我的javascript代码:
function() {
//some code here was removed
events: {
'tap tbody.classX': 'triggerTap'
}
}
triggerTap: function(e) {
console.log('do your job');
}
首先通过添加一个触发相同方法的鼠标事件监听器来建议修复,点击事件触发。
function() {
events: {
'tap tbody.classX': 'triggerTap',
'click tbody.classX': 'triggerTap'
}
}
通过添加另一个与triggerMouseClick
triggerTap
)进行第二次建议修复
function() {
events: {
'tap tbody.classX': 'triggerTap',
'click tbody.classX': 'triggerMouseClick'
}
}
//triggerTap method
triggerTap: function(e) {
console.log('do your job');
}
//trigger mouse click
triggerMouseClick: function(e) {
console.log('do your job');
}
答案 0 :(得分:2)
添加另一个执行相同操作的功能是没有意义的。这就是代码重复。
另一方面,在鼠标点击时调用一个名为triggerTap
的函数也是不可读的。
这里要做的正确的事情是将triggerTap
重命名为有意义的名称,这对于两者都有意义,例如triggerTapAndClick
或更好的某些东西,指的是点击和鼠标点击的操作。例如:
function() {
events: {
'tap tbody.classX': 'openContactsList',
'click tbody.classX': 'openContactsList'
}
}
openContactsList: function(e) {
console.log('do your job');
}