在JavaScript中查找来电脚本?

时间:2013-11-20 19:03:31

标签: javascript

考虑这些脚本片段。

<script data-name="script1">
    foo();
</script>

<script data-name="script2">
    foo();
</script>

<script>
    function foo(){
//      console.log(arguments.?);
    }
</script>

有没有办法找出从“//”表示的行调用哪个脚本函数foo?

2 个答案:

答案 0 :(得分:2)

正如评论中已经提到的,你呈现它的方式,这是不可能的,它只有在函数调用函数foo时才有效,当然这对于每个函数都必须是一个不同的函数脚本,然后你可以使用

console.log(arguments.callee.caller.name)

这将为您提供调用函数foo的函数的名称。

编辑:实际上,如果知道调用脚本的位置很重要,只需使用一个参数,如function foo(caller){,它指示函数的调用方式,这比依赖{{1}更安全。事情。

答案 1 :(得分:0)

好的,我想通了,这将获取脚本数据名称属性

function foo() {
    var parentScript = document.body.lastChild;
    console.log(parentScript.getAttribute('data-name'));
}

为了让它工作,我不得不在调用它之前定义foo函数,但我确信一些玩它可以解决它。