【问题标题】:Where do function definitions live? In the stack or in the heap?函数定义在哪里?在堆栈中还是在堆中?
【发布时间】:2021-05-25 15:14:09
【问题描述】:

当我们定义一个函数时,它在内存分区方面会去哪里?像原始数据类型一样在堆栈上?还是像对象一样放在堆上?

【问题讨论】:

    标签: javascript function stack heap-memory definition


    【解决方案1】:

    函数是对象。因此,函数的标识符在栈中,函数的值在堆中。

    【讨论】:

    • 一个函数在被调用时会创建一个激活对象。在此之前,它只是一个文本。还是我错过了什么?
    • 我不确定激活对象和执行上下文之间的区别,但据我所知,我同意第一个说法——我会改变措辞:函数调用创建一个执行上下文。 “只是一个文本”是什么意思?
    • They are the same thing 只是一个文本,我的意思是一串字符(字符串)
    • 在创建阶段(调用函数之前),变量声明(包括函数)被提升并存储在变量环境对象中
    猜你喜欢
    • 2010-11-15
    • 2016-05-07
    • 2014-08-14
    • 2010-10-26
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    相关资源
    最近更新 更多