javascript - 如何在不返回内部函数的情况下访问函数内部函数

标签 javascript function scope window-object

我有一个函数“alpha”,里面还有另一个函数“beta”。如果我不在 alpha 中返回 beta,那么如何访问 beta。反正有这样做吗? (比如,我可以访问 alpha 编写 window.alpha(),因为在全局上下文中 alpha 成为窗口对象的属性,那么如何通过窗口 dom 树访问 beta 作为属性)?

<html>
<head></head>
<body>

<script>

function alpha() { 
  console.log("hi");
  function beta() {
    console.log("hello");
  } 
} 
alpha(); //works 
window.alpha(); //works
beta(); //it is directly not accessible. How to access it if alpha does not return it

</script>

</body>
</html>

alpha() 在 Window Dom 中,但为什么不在 beta 中? (即使不在 alpha 内)

enter image description here

最佳答案

通常你不能做这件事,你也可以选择这些选项,但在这些选项中你必须调用一次 alpha 才能获得 beta

//第一个选项

(function alpha() { 
  console.log("hi");
  function beta() {
    console.log("hello");
  } 
  window.beta = beta;
})() 

//第二个选项

使用 this 创建 beta 作为 alpha 中的属性

function alpha() {
  this.beta = function() {
    console.log("hello");
  }
}
let alphaObject = new alpha();
alphaObject.beta();

关于javascript - 如何在不返回内部函数的情况下访问函数内部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49790494/

相关文章:

javascript - 我们可以从数据库中获取值并将它们显示在 javascript 的选择框中吗

javascript - 如何获取 URL 中第一个查询字符串的值

javascript - 防止js函数多次运行

php - 如何使用 PHP 在 MySQL 中存储 '€' 符号?

javascript - 视频内联 iOS 不工作

javascript - jquery scrollTop 不起作用(总是返回 0)

javascript - jQuery 组合函数

Javascript按钮onclick获取输入值并提交post请求

php - PHP 中全局变量的替代方案

javascript - Javascript 中不存在时如何声明 CONST