如何在没有外部返回内部函数的情况下访问函数内部函数
How to access function inside function without outer returning inner one
我有一个函数'alpha',里面还有一个函数'beta'。如果我在 alpha 中没有 return beta,那么如何访问 beta。反正有这样做吗? (比如,我可以访问 alpha 写作 window.alpha(),因为在全局上下文中 alpha 变成了 window 对象的 属性,那么如何通过 属性 访问 beta =30=] dom 树)?
<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 内)
如果您不想 return beta
,您可以 return this
并将 beta
定义为 this.beta
:
要访问 beta()
,您只需调用 alpha().beta()
.
function alpha() {
console.log("hi");
this.beta = () => {
console.log("hello");
}
return this;
}
alpha().beta();
使用 this
:
声明 beta
为 alpha
的成员
function alpha() {
console.log("hi");
this.beta = function() {
console.log("hello");
}
}
let a = new alpha();
a.beta();
您当前的实现阻止 JavaScript 从 alpha
外部访问 beta
。在 JavaScript.
中阅读有关 private functions 的更多信息
使用this
,您实际上可以将此类方法附加到函数alpha
的实例。这就是我在此解决方案中所做的。
通常你不能做这件事,你也可以选择这些选项,但在这些选项中你必须调用 alpha
一次才能获得测试版
//第一个选项
(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();
beta() 方法是函数 alpha 私有的。 Javascript 作用域的工作方式阻止您直接访问内部函数。使用 this.beta
将其创建为 alpha 的 属性
我有一个函数'alpha',里面还有一个函数'beta'。如果我在 alpha 中没有 return beta,那么如何访问 beta。反正有这样做吗? (比如,我可以访问 alpha 写作 window.alpha(),因为在全局上下文中 alpha 变成了 window 对象的 属性,那么如何通过 属性 访问 beta =30=] dom 树)?
<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 内)
如果您不想 return beta
,您可以 return this
并将 beta
定义为 this.beta
:
要访问 beta()
,您只需调用 alpha().beta()
.
function alpha() {
console.log("hi");
this.beta = () => {
console.log("hello");
}
return this;
}
alpha().beta();
使用 this
:
beta
为 alpha
的成员
function alpha() {
console.log("hi");
this.beta = function() {
console.log("hello");
}
}
let a = new alpha();
a.beta();
您当前的实现阻止 JavaScript 从 alpha
外部访问 beta
。在 JavaScript.
使用this
,您实际上可以将此类方法附加到函数alpha
的实例。这就是我在此解决方案中所做的。
通常你不能做这件事,你也可以选择这些选项,但在这些选项中你必须调用 alpha
一次才能获得测试版
//第一个选项
(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();
beta() 方法是函数 alpha 私有的。 Javascript 作用域的工作方式阻止您直接访问内部函数。使用 this.beta