【问题标题】:export namespace function is undefined导出命名空间函数未定义
【发布时间】:2016-08-08 04:31:46
【问题描述】:

我有一个命名空间。

var ns = ns || {};
ns.test = function(){

    //stuff
    var f = function(){
    };

    return {f:f};

}

如果我想打电话给f,例如main.js,它会说ns is undefined

如果我把代码改成这样:

 var ns = ns || {};
export default ns.test = function(){

    //stuff
    var f = function(){
    };

    return {f:f};

}

错误是:Cannot read property 'f' of undefined

【问题讨论】:

  • 我认为最好为 ns.test 使用命名空间,如下所示:ns.test = (function() { })()
  • 你不应该在 ES6 中使用命名空间对象。
  • 还向我们展示您的main.js 文件,因为这似乎是错误所在。
  • @Bergi 好的,我不知道,您有等效示例的链接吗?
  • @lolio:就做export function test() { …

标签: javascript meteor ecmascript-6


【解决方案1】:

ns.test().f() 会为你工作。

var ns = ns || {};
ns.test = function(){
    //stuff
    var f = function(){
        console.log('f invoked');
    };

    return {f:f};
}

【讨论】:

    【解决方案2】:

    这应该适合你:

    var ns = ns || {};
    export default ns.test = function(){
    
        f : function(){
      }
    
    
    }
    

    调用应该是这样的:

    ns.test().f();
    

    【讨论】:

      猜你喜欢
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-21
      • 2017-08-20
      • 1970-01-01
      • 2015-03-17
      • 2012-08-27
      相关资源
      最近更新 更多