4

这是一个有点强迫症的问题。但我试图让我的代码库更加一致。在某些地方,我在自己的函数中进行回调,而在其他地方,我在事件侦听器中匿名内联编写它们。

我想要一种一致的方式来做到这一点。

这只是一个随机的设计选择(掷硬币并选择一个)还是有最佳实践方法来做到这一点。

这是我能找到的最短的例子。

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();
    }
});
4

1 回答 1

2

这取决于上下文。对于事件处理程序,我倾向于将其保留为匿名函数,特别是如果函数很小并且有一种简单的方法可以调用处理程序(例如:.click()在 jQuery 中)。这是一种更简单、更直接的代码编写方式。

另一方面,如果您有一个非常大的函数,或者将在事件处理程序以外的地方显式调用,则将其保留为命名函数可能更简洁。

于 2013-06-11T14:20:00.043 回答