gpt4 book ai didi

javascript - 启用 use strict 时,如何找出 JavaScript 中的调用函数?

转载 作者:IT王子 更新时间:2023-10-29 03:11:04 24 4
gpt4 key购买 nike

启用 use strict 时是否可以看到函数的被调用者/调用者?

'use strict';

function jamie (){
console.info(arguments.callee.caller.name);
//this will output the below error
//uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
};

function jiminyCricket (){
jamie();
}

jiminyCricket ();

最佳答案

对于它的值(value),我同意上面的评论。无论您要解决什么问题,通常都有更好的解决方案。

但是,仅出于说明目的,这里有一个(非常难看)的解决方案:

'use strict'

function jamie (){
var callerName;
try { throw new Error(); }
catch (e) {
var re = /(\w+)@|at (\w+) \(/g, st = e.stack, m;
re.exec(st), m = re.exec(st);
callerName = m[1] || m[2];
}
console.log(callerName);
};

function jiminyCricket (){
jamie();
}

jiminyCricket(); // jiminyCricket

我只在 Chrome、Firefox 和 IE11 中对此进行了测试,因此您的情况可能会有所不同。

关于javascript - 启用 use strict 时,如何找出 JavaScript 中的调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29572466/

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