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()
)。这是一种更简单、更直接的代码编写方法

另一方面,如果您有一个非常大的函数,或者将从事件处理程序以外的位置显式调用该函数,那么将其保留为命名函数可能会更干净