Javascript 包含命名空间



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

// foo.js
const Foo = {
  hello: () => {
    console.log('Hello world!');
  }
}
module.exports = Foo

现在在我的文件导入中.js我可以这样做:

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

所以在任何 js 文件中我都可以调用Foo.hello();

现在的问题是:在一个特定的js文件中,有没有办法在没有Foo的情况下调用hello(),就像C++using namespace Foo一样?

只需使用 require('./foo.js'(.hello 像这样:

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

或者,如果您需要在foo中使用其他东西,只需创建一个别名

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

或者如果你想使用导入,直接导入 hello:

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

如果您在构建步骤中使用树摇动,导入它可以具有空间优势,因为它不必在您的捆绑包中包含未使用的导出。

最新更新