这是一个有点痴迷的问题.但我正在努力使我的代码库更加一致.在某些地方,我使回调具有自己的功能,而在其他地方,我在事件监听器中匿名内联.
我想要一致的方法来做到这一点.
这只是一个随机的设计选择(翻转硬币并选择一个)或者是否有最佳实践方法来执行此操作.
这是我能找到的最短的例子.
NS.parsel({
Name: 'MSimOut',
S: {
Page: SPage,
Storage: SStorage,
AniFlipMediaPane: MSimMediaPane
},
E: {
signout_button: '#signout_button'
},
init: function () {
var self = this;
// anonymous inline function, should I move out as a named function and call using bind?
self.E.signout_button.addEventListener("click", function () {
self.S.AniFlipMediaPane.run('mi_about');
self.S.Page.flip('sp');
self.S.Storage.clear();
}, false);
},
// or give a name like this?
clicked: function () {
self.S.AniFlipMediaPane.run('mi_about');
self.S.Page.flip('sp');
self.S.Storage.clear();
}
});
最佳答案 这取决于具体情况.对于事件处理程序,我倾向于将其作为匿名函数,特别是如果函数很小并且有一种简单的方法来调用处理程序(EG:.click()在jQuery中).这是编写代码的更简单,更直接的方法.
另一方面,如果您有一个非常大的函数或将从事件处理程序以外的位置显式调用的函数,则将其保留为命名函数可能更为清晰.