【问题标题】:Is it possible to get the text contents of a javascript IIFE from within itself?是否可以从自身内部获取 javascript IIFE 的文本内容?
【发布时间】:2020-01-24 22:22:33
【问题描述】:

假设我有一个 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?

【问题讨论】:

    标签: javascript iife


    【解决方案1】:

    你可以使用arguments.callee,它只适用于“普通”函数(不是箭头函数)

    (function() {
      var x = 1;
      console.log(arguments.callee+"");
    })()

    【讨论】:

      【解决方案2】:

      使用已弃用的 .caller() 方法 -

      let imagodei = {};
      
      function aFunctionToGetIifeText(){ 
        console.log(aFunctionToGetIifeText.caller.toString());
      }
      
      (async function(){
         let C = "12:19";
      
         imagodei.myIife = aFunctionToGetIifeText()
      
      })(imagodei);

      您可以从this Stackoverflow question获得更多参考

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        • 2011-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多