2016-08-07 5 views
0

У меня есть пространство имен.export namespace function undefined

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

+0

Я считаю, что лучше использовать пространство имен для ns.test так: нс. test = (function() {})() –

+0

Вы вообще не должны использовать объекты пространства имен в ES6. – Bergi

+0

Также покажите нам свой файл 'main.js', поскольку, похоже, это ошибка. – Bergi

ответ

0

ns.test().f() будет работа для вас.

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

    return {f:f}; 
} 
+0

, к сожалению, это не помогло мне :( – greedsin

0

Это должно работать для вас:

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

    f : function(){ 
    } 


} 

Вызов должен быть таким образом:

ns.test().f();