2017-05-26 96 views
0

我有一個文件foo.js用這樣的命名空間:的Javascript包括命名空間

// foo.js 
const Foo = { 

    hello:() => { 
    console.log('Hello world!'); 
    } 

} 

module.exports = Foo 

現在在我的文件imports.js我可以這樣做:

// imports.js 
global.Foo = require('./foo.js'); 

所以在任何的js文件,我可以叫Foo.hello();

現在的問題是:在一個特定的js文件是有辦法叫hello()沒有Foo,像C++的using namespace Foo

回答

0

只要使用要求(」 ./ foo.js')你好是這樣的:

// In Imports.js 
global.Hello = require('./foo.js').hello; 

或者,如果你需要使用其他的東西foo中,只需要創建一個別名

global.Foo = require('./foo.js'); 
global.Hello = Foo.hello 

或者,如果你想使用imports,導入打招呼直接:

import {hello} from './foo.js' 

導入它可以有空間的優勢,如果你在構建步驟中使用tree shaking,因爲它不必在包中包含未使用的導出。

+0

好的,謝謝@ james-kraus,但是如果命名空間Foo有很多函數,我必須一個一個地導入,或者我可以一次導入所有函數? – Pioz

+0

您可以一次或一次導入所有內容。 –