Backbone.js RequireJS 混合

Backbone.js RequireJS Mixin

我已经使用 requirejs 创建了一个 mixin 组件,如下所示:

define(function() {
    'use strict';

    var MyClass = function () {
        console.log('Hello World');
    };

    return {
        doSomething: function () {
            var m = new MyClass();
            return m;
        }
    }
});

我的问题是,在 return 是无需访问 returned 对象即可包含的函数中编写此 mixin 是否更好?

因此上面的内容将重写为:

define(function() {
    'use strict';

    var MyClass = function () {
        console.log('Hello World');
    };

    return function doSomething() {
        var m = new MyClass();
        return m;
    }
});

然后当您包含此模块时,您只需调用 doSomething() 而不必包含该模块并访问 myModule.doSomething().

之类的方法

我知道这两种方式都是可以接受的,但只是想就实施问题征求意见。

我认为这取决于您项目中商定的约定以及代码结构。第二个例子对我来说可能更 SOLID 因为每个模块或 class 应该只是单一的职责。返回对象表示法可能倾向于模块返回级别上的更多功能。不过只是一个想法。