Javascript 事件回调的最佳位置在哪里?(匿名或具名)
这是一个令人困扰的问题。但我正在努力使我的代码库更加一致。在某些地方,我在那里调用自己的函数,在另一些地方,我在事件侦听器中匿名内联编写它们 我想要一个一致的方法来做到这一点 这仅仅是一个随机的设计选择(抛硬币,挑一个),还是有一个最佳实践方法来做到这一点 这是我能找到的最简短的例子Javascript 事件回调的最佳位置在哪里?(匿名或具名),javascript,Javascript,这是一个令人困扰的问题。但我正在努力使我的代码库更加一致。在某些地方,我在那里调用自己的函数,在另一些地方,我在事件侦听器中匿名内联编写它们 我想要一个一致的方法来做到这一点 这仅仅是一个随机的设计选择(抛硬币,挑一个),还是有一个最佳实践方法来做到这一点 这是我能找到的最简短的例子 NS.parsel({ Name: 'MSimOut', S: { Page: SPage, Storage: SStora
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();
}
});
这取决于上下文。对于事件处理程序,我倾向于将其保留为匿名函数,特别是当函数很小并且有一种简单的方法调用处理程序时(例如:jQuery中的
。click()
)。这是一种更简单、更直接的代码编写方法
另一方面,如果您有一个非常大的函数,或者将从事件处理程序以外的位置显式调用该函数,那么将其保留为命名函数可能会更干净