gpt4 book ai didi

javascript - ES6 和 "Who imported me"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:42:34 24 4
gpt4 key购买 nike

我正在使用一个在 ES6 兼容的 javascript 上构建(我认为?)的 javascript 系统,该系统被编译/转译为浏览器兼容的 javascript(Wordpress Calypo,if it matters)

现代 javascript 是否有办法反射(reflect)到调用上下文中?换句话说,如果我有一个 javascript 模块 foo

#File: foo/index.js
//...lots of code...
export default () => {
//...more code...
}

有没有办法在运行时判断哪个其他 javascript 模块和/或文件导入了我的“foo”模块?如果这不可能,是否有一种通用的方法可以通过静态分析来做到这一点。如果我的问题没有任何意义,因为我做了一个错误的假设(最有可能的情况),我很乐意纠正这个假设。

最佳答案

tl;dr:不,不。

无法确定特定的 ES6 Javascript block 是如何加载的。你能做的最好的事情就是让加载 Javascript 告诉加载的 Javascript 加载器是如何处理它的。

静态分析实际上不能 100% 地告诉您特定代码位是否会运行,因此也不能 100% 地告诉您特定文件是否会被加载。 (这与 halting problem 有关。)也就是说,很少需要 100% 检测,因为文件请求很少被隐藏到隐藏它们所需的程度。但是,我不知道是否有静态分析工具能够展开更复杂版本的常见 Javascript 加载技术,因为代码创建者通常已经知道他们加载相关代码的情况。

关于javascript - ES6 和 "Who imported me"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39216789/

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