从内部调用方法?

时间:2016-02-27 00:05:28

标签: javascript function object methods self-reference

我有这个片段:

myApp.factory('productsStore', function ($http, $q, Product) {
    var products = "";

    products = productsStore.get();

    return {
        get: function () {
            return Product.query({});
        }
    };
});

如何在同一工厂内调用get()方法'? products = productsStore.get()显然不起作用。

2 个答案:

答案 0 :(得分:3)

您可以使用揭示模块模式

myApp.factory('productsStore', function ($http, $q, Product) {
    var products = "";

    var get = function () {
        return Product.query({});
    };

    products = get();

    return {
        get: get
    };
});


我喜欢这种模式的原因:

  • this.MyObject.等前缀没有混乱。
  • 您在底部return清楚地看到了公开曝光的内容。


关于这个主题的一篇很棒的文章:Mastering the Module Pattern

答案 1 :(得分:0)

您可以将返回的对象分配给变量,然后调用变量中定义的get函数,然后返回变量。

或者只是复制查询代码。