Javascript线程如何知道返回到上下文中的哪个位置?
假设我们有这样的代码:Javascript线程如何知道返回到上下文中的哪个位置?,javascript,Javascript,假设我们有这样的代码: const a = 2; const b = 4; const addFunc = (x, y) => x + y; const c = addFunc(a, b); // some more code 因此,线程将在内存中存储全局常量a和b,在内存中存储函数addFunc,然后存储c,并为其分配addFunc(a,b)的返回值。线程位于函数内部的调用堆栈将具有全局和addFunc(2,4)。当线程通过返回返回值并从调用堆栈中弹出addFunc(2,4)来完成时,
const a = 2;
const b = 4;
const addFunc = (x, y) => x + y;
const c = addFunc(a, b);
// some more code
因此,线程将在内存中存储全局常量a和b,在内存中存储函数addFunc,然后存储c,并为其分配addFunc(a,b)
的返回值。线程位于函数内部的调用堆栈将具有全局和addFunc(2,4
)。当线程通过返回返回值并从调用堆栈中弹出addFunc(2,4)
来完成时,它如何知道需要返回到全局上下文中的哪个位置?(例如,不要返回执行行:)
这可能会对您有所帮助。@BharathvajGanesan它提到“一旦函数的所有代码都被执行,JS引擎就会弹出该函数的执行上下文,并开始执行它下面的函数。”。那么,这是否意味着一旦它完成了函数的执行,它将找到它执行的函数并从那里继续,或者是否存在某种对执行的函数所在位置的引用?我假设是后者,但在这种情况下,引用存储在哪里?如果您有一个
func1()的文件;funct2();func3()
它将执行1,然后当它完成时,它将执行2,然后执行3。但是,这并不意味着在执行func1
之后,它将从任何位置返回到单个位置。如果func3
也调用func1()
,那么JS仍然会再次执行func1
,但如果调用源自那里,它将返回func3
,或者返回我用作示例的原始虚构文件。这取决于它从何处开始。函数在两个()
的位置执行。在哪里申报并不重要。
const a = 2;