是否可以从自身内部获取 javascript IIFE 的文本内容?
Is it possible to get the text contents of a javascript IIFE from within itself?
假设我有一个 IIFE:
let imagodei = {};
;(async function(){
let C = "12:19";
imagodei.myIife = aFunctionToGetIifeText()
})(imagodei);
我想定义 aFunctionToGetIifeText()
使得 imagodei.myIife
是上述代码的字符串(不包括 let imagodei = {};
)。有谁知道这是否可能?
我看过这些问题,但它们适用于具有命名函数的情况:
javascript get function body
How to get function body text in JavaScript?
您可以使用 arguments.callee,它仅适用于 "normal" 函数(不是箭头函数)
(function() {
var x = 1;
console.log(arguments.callee+"");
})()
使用已弃用的 .caller() 方法 -
let imagodei = {};
function aFunctionToGetIifeText(){
console.log(aFunctionToGetIifeText.caller.toString());
}
(async function(){
let C = "12:19";
imagodei.myIife = aFunctionToGetIifeText()
})(imagodei);
您可以从this Whosebug question
获得更多参考
假设我有一个 IIFE:
let imagodei = {};
;(async function(){
let C = "12:19";
imagodei.myIife = aFunctionToGetIifeText()
})(imagodei);
我想定义 aFunctionToGetIifeText()
使得 imagodei.myIife
是上述代码的字符串(不包括 let imagodei = {};
)。有谁知道这是否可能?
我看过这些问题,但它们适用于具有命名函数的情况:
javascript get function body
How to get function body text in JavaScript?
您可以使用 arguments.callee,它仅适用于 "normal" 函数(不是箭头函数)
(function() {
var x = 1;
console.log(arguments.callee+"");
})()
使用已弃用的 .caller() 方法 -
let imagodei = {};
function aFunctionToGetIifeText(){
console.log(aFunctionToGetIifeText.caller.toString());
}
(async function(){
let C = "12:19";
imagodei.myIife = aFunctionToGetIifeText()
})(imagodei);
您可以从this Whosebug question
获得更多参考