![](/img/trans.png)
[英]In React, how does a child component call a function, which executes in the context of it's parent?
[英]Does IIFE function executes in same function context in which it is being called
只是想了解 IIFE 函数是如何在 JavaScript 引擎中执行的。
我知道每个新函数在调用堆栈上都有执行上下文,但是如果在特定函数中调用 IIFE 函数,那么它会为 IIFE 创建新的上下文,还是会在调用它的同一上下文中执行?
function myFunction(){
console.log('inside the myFunction');
(function(){
console.log('inside the IIFE')
})()
}
myFunction();
那么如何为普通函数和 IIFE 创建执行上下文呢?
您可能指的是“IIFE”或“立即调用的函数表达式”。
是的,IIFE 导致它们自己的执行上下文。 当 IIFE 被调用时,它进入调用堆栈,当函数结束时,它从调用堆栈中删除,就像普通的命名函数一样。 毕竟,递归调用 IIFE 也可能导致堆栈溢出:
(function iife() { iife() })();
就像命名函数一样,IIFE 甚至可能有只在它们内部定义的变量,并有自己的参数:
(function (param) { const someOtherVarName = true; })('param'); console.log(typeof param, typeof someOtherVarName);
因此,就执行上下文和变量范围而言,IIFE 和命名函数的调用之间并没有太大区别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.