副作用? 换句话说,当将导出导入到另一-6ren">
gpt4 book ai didi

javascript - 如何在 JavaScript 中使用 import 而不产生副作用或通过其他方式执行?

转载 作者:行者123 更新时间:2023-11-28 17:28:27 28 4
gpt4 key购买 nike

当我使用 import { export } from "module-name"; 时,如何确保它不会同时运行 import "module-name"; > 副作用?

换句话说,当将导出导入到另一个文件时,如何使 JavaScript 只查看导出并忽略文件中的其他所有内容。

例如:

我只想打印“foo”。

B.js:

//从这里开始

import {foo} from "./A.js";
foo();

A.js

export function foo() {
console.log("foo");
}
console.log("IN A");

最佳答案

how do I make JavaScript only look at the export and ignore everything else in the file when importing the export into another file.

在一般情况下,这不是一个明确定义的目标,因为导出的值可能是由引起副作用的函数的输出创建的(全部或部分)。考虑以下模块:

var bar;
if(Math.random() > 0.5) {
bar = console.log("bar is undefined");
} else {
bar = new Date();
}

export function foo() {
console.log(bar);
}

这里foo函数的全部意义就是记录bar,但是为了了解bar是什么,我们必须通过非纯粹运营的雷区。仅要求导出的函数 foo 而不运行生成 bar 的非纯代码没有任何意义 - foo 的行为完全取决于 bar 的值。

如果您希望 A.js 没有副作用,这里的解决方案是(重新)编写 A.js 的代码,这样它就不会产生副作用效果。

关于javascript - 如何在 JavaScript 中使用 import 而不产生副作用或通过其他方式执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51004644/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com