你如何要求没有前缀的变量
How do you require variables without a prefix
我有一个文件,其中包含一些要在其他两个文件中使用的辅助函数。我想导入函数,但是我习惯的方法并不理想:
helper = require('./helpers')
helper.log()
helper.ok()
...
我希望能够使用没有 helper
前缀的函数(例如 ok()
)。我该怎么做?
编辑: 目前有 7 个辅助函数,这个数字将来可能会增加,所以手动指定每个函数似乎违背了使用单独文件的目的.
你可以使用 object destructuring:
const {log, ok} = require('./helpers');
log();
ok();
与ES2015、Python或其他语言不同,您不能从另一个文件导出特定功能并直接使用它。你可以在 ES5 中做的是:
helper = require('./helpers')
var ok = helper.ok;
ok(...);
...
或者如果你更喜欢oneliner:
var ok = require('./helpers').ok
也就是说,我假设您正在导出您在 helpers.js
.
中具有的各种函数的单个对象
而在 ES2015 中,您必须稍微不同地编写它。
首先,您的 helpers.js
需要像这样单独导出函数:
export function ok(args) {
...
}
export function log(args) {
...
}
然后在你的主脚本中:
import {ok, log} from './helpers';
ok(...);
log(...);
查看更多:https://developer.mozilla.org/en/docs/web/javascript/reference/statements/import
鉴于还没有人提供不涉及指定要导入的每个函数的解决方案,这里有一个可能不理想但有效的解决方案:
const helpers = require("./lib")
for (let k in helpers) {
eval(`var ${k} = helpers.${k}`)
}
我有一个文件,其中包含一些要在其他两个文件中使用的辅助函数。我想导入函数,但是我习惯的方法并不理想:
helper = require('./helpers')
helper.log()
helper.ok()
...
我希望能够使用没有 helper
前缀的函数(例如 ok()
)。我该怎么做?
编辑: 目前有 7 个辅助函数,这个数字将来可能会增加,所以手动指定每个函数似乎违背了使用单独文件的目的.
你可以使用 object destructuring:
const {log, ok} = require('./helpers');
log();
ok();
与ES2015、Python或其他语言不同,您不能从另一个文件导出特定功能并直接使用它。你可以在 ES5 中做的是:
helper = require('./helpers')
var ok = helper.ok;
ok(...);
...
或者如果你更喜欢oneliner:
var ok = require('./helpers').ok
也就是说,我假设您正在导出您在 helpers.js
.
而在 ES2015 中,您必须稍微不同地编写它。
首先,您的 helpers.js
需要像这样单独导出函数:
export function ok(args) {
...
}
export function log(args) {
...
}
然后在你的主脚本中:
import {ok, log} from './helpers';
ok(...);
log(...);
查看更多:https://developer.mozilla.org/en/docs/web/javascript/reference/statements/import
鉴于还没有人提供不涉及指定要导入的每个函数的解决方案,这里有一个可能不理想但有效的解决方案:
const helpers = require("./lib")
for (let k in helpers) {
eval(`var ${k} = helpers.${k}`)
}