Javascript包括命名空间

时间:2017-05-26 14:59:24

标签: javascript namespaces

我有一个文件名foo.js,其名称空间如下:

// 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

1 个答案:

答案 0 :(得分:0)

只需使用require(' ./ 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,则导入它可以获得空间优势,因为它不必在捆绑包中包含未使用的导出。