首页 > 解决方案 > 了解嵌套函数如何在 javascript 中工作

问题描述

例如,我想了解嵌套函数的工作原理

function outer(){
  console.log("Hello from outer function")
  function inner(){
    console.log("Hello from inner function")
  }
}

我想了解调用外部()时会发生什么,如何调用内部函数,内部函数的执行上下文是什么,

标签: javascript

解决方案


由于您没有inner()outer()函数中的任何地方调用,所以这就是默认情况下不调用 inner() 的原因。

JavaScript 将在最初声明值时自动分配内存。有一个链接,您可以在其中阅读 JS 中的内存管理

你不能inner()从外面打电话。一旦 outer() 完成执行 inner() 将被垃圾收集,因为没有其他对它的引用。

function outer(){
  console.log("Hello from outer function")
  inner();
  function inner(){
    console.log("Hello from inner function")
  }
}

outer();

使用闭包方式:

function outer() {
  var name = 'StackOverflow';
  function inner() {
    console.log("I am in Inner function at " + name);
  }
  return inner;
}

var outerfunction = outer();
outerfunction();

但是如果你看到我们在外部函数中间接调用了 inner() 。


推荐阅读