请问这样如何打印出efg()的值?谢谢

function abc(){
    function efg(){
        return 456;
    }
    return 123;
};
阅读 1.8k
4 个回答

没法打印,function efg()是私有的,你在function abc()外部无法访问和调用。

在abc的作用域内,且没有被返回,或是被任意暴露出的接口调用,是无法获取到其内的变量或是函数的,也就是相当于是被私有,而且无使用。

可以用abc.toString()获取函数代码,然后用正则获取efg的代码,然后用eval执行
不过我确实没搞懂为什么要做这个事?面试题?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题