小编Mes*_*fci的帖子

如何将 JavaScript 函数表达式保存在内存中?

let sayBye = function () {
    console.log(`Bye`);
}

let bye = sayBye;   
sayBye = null;    // X

bye();            // Y

Run Code Online (Sandbox Code Playgroud)

在问这个问题之前,我在谷歌搜索,我找到了这篇文章。

然后我想,在第 X 行之前,结构类似于这样:


sayBye ---------------                                              
                      |      
                      |  => function() {....}
                      |
bye-------------------

Run Code Online (Sandbox Code Playgroud)

x线之后,我以为是这样的:

sayBye                        MEMORY                                      
                            
                      |  => function() {....}
                      |
bye-------------------

Run Code Online (Sandbox Code Playgroud)

但是当我在 Firefox 开发人员工具中写再见时,我看到了这个

这怎么可能?我写let bye = sayBye;的时候sayBye被复制了吗?

let sayBye = function () {
    console.log(`Bye`);
}

let bye = sayBye;   
sayBye = null;    // X

bye();            // Y

Run Code Online (Sandbox Code Playgroud)

javascript

6
推荐指数
1
解决办法
140
查看次数

标签 统计

javascript ×1