获取调用特定函数的脚本标签

Get script-tag that called certain function

假设我有 第一个 脚本,其中包含函数 export

function export(*params*){
  let callerScriptReference = ....;
  .....
}

然后我有一个 second 脚本,我在其中调用此函数

export(*params*);

是否可以从导出函数体内获取对第二个脚本的引用?我想从该脚本标签中获取一些 "data-*" 属性。

脚本以随机顺序添加到页面。

希望你明白我想要完成的事情:D

感谢任何建议或帮助。

如果您在浏览器中,您可以在 html 正文中添加另一个脚本标记。这将允许函数共享相同的范围。

如果你是nodejs,如果你使用的是ES5(目前支持最多):

  • script1.js 最后有:

module.exports = 函数 funName() { }

  • script2.js开头有:

var funName = require('script1');

据我所知,没有内置方法可以获取有关包含调用代码的 <script> 标记的信息,因此您需要显式传递它。

function export(callerscript, otherparams...) {
    ...
}

来电者会做:

export(document.currentScript, otherargs...);

如果您在函数中执行此操作,则可以使用 IIFE 捕获闭包变量中的值。

var someFun = (function(curScript) {
                return function(stuff) {
                    export(curScript, stuff);
                }; })(document.currentScript);
someFun(stuffArgs);