gpt4 book ai didi

javascript - 当我调用函数时到底发生了什么?

转载 作者:行者123 更新时间:2023-12-02 17:21:07 25 4
gpt4 key购买 nike

这可能是一个简单的问题,但我最近一直在思考。我尝试过研究答案,但尚未找到满意的答案。
基本上,当我调用函数时幕后发生了什么?说:-

function sayHello(){
console.log('hello');
}
sayHello(); //what's happening here?

我知道执行 sayHello.call();sayHello.apply(); 与执行 sayHello(); 是一样的> 但是是否有更多关于下面发生的事情或者神秘的 native 代码背后发生的事情的信息?

最佳答案

以下是解释器为调用 JS 函数所做的一些事情:

  • 创建了一个新的范围对象。创建并放置一个参数对象进入作用域对象,并将任何参数传递给函数它。
  • 新函数中的任何局部变量都会放入作用域中目的。
  • 对下一行代码的引用被推送到执行中堆栈(因此解释器知道当函数执行时该去哪里)返回)。
  • this 指针被适当设置。
  • 执行转移到函数代码。

这是由 JS 解释器(其众多工作之一)的内部管理的,它可能是 native 代码。

<小时/>

如果您想在调用函数 A() 时调用函数 B(),您可以将函数 A() 替换为您的函数自己的代理调用函数 B(),然后调用原始 A()

关于javascript - 当我调用函数时到底发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23946541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com