【问题标题】:Call method from within itself?从自身内部调用方法?
【发布时间】:2016-06-10 09:22:28
【问题描述】:

我有这个sn-p:

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

    products = productsStore.get();

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

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

【问题讨论】:

  • 声明function get(){},然后声明return {get:get}
  • 欢迎来到 stackoverflow(你很快就会明白我的意思)
  • @elclanrs:让它成为答案!

标签: javascript function object methods self-reference


【解决方案1】:

您可以使用显示模块模式

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

【讨论】:

    【解决方案2】:

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

    要么这样,要么只是复制您的查询代码。

    【讨论】:

      猜你喜欢
      • 2018-01-12
      • 2015-05-18
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多