js 严格模式如何获取 caller
在严格模式下,caller 属性已被禁用,因此无法使用它来获取调用当前函数的函数引用。如果您需要获取调用函数的函数引用,可以使用 arguments.callee.caller 属性。但是,在严格模式下,arguments.callee 属性也被禁用,因此您需要使用具名函数表达式来获取函数引用。
以下是一个使用具名函数表达式来获取函数引用的示例:
'use strict';
var myFunc = function myNamedFunc() {
if (myNamedFunc.caller) {
console.log('Caller:', myNamedFunc.caller);
} else {
console.log('No caller available');
}
};
function myCallerFunc() {
myFunc();
}
myCallerFunc();
在上面的示例中,我们定义了一个具名函数表达式 myNamedFunc,并在其中检查是否有调用者。然后,我们定义了一个函数 myCallerFunc,它调用 myFunc。当 myFunc 被调用时,它将检查其调用者并将其打印到控制台上。最后,我们调用 myCallerFunc,以便触发 myFunc 的调用并测试输出
原文地址: https://www.cveoy.top/t/topic/g8wa 著作权归作者所有。请勿转载和采集!