第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何將 JavaScript 函數(shù)表達(dá)式保存在內(nèi)存中?

如何將 JavaScript 函數(shù)表達(dá)式保存在內(nèi)存中?

狐的傳說 2023-08-24 10:00:45
let sayBye = function () {    console.log(`Bye`);}let bye = sayBye;   sayBye = null;    // Xbye();            // Y在問這個(gè)問題之前,我在谷歌上搜索了一下,發(fā)現(xiàn)了這篇文章。然后我想,在 X 行之前,結(jié)構(gòu)類似于這樣:sayBye ---------------                                                                    |                            |  => function() {....}                      |bye-------------------x行之后,我認(rèn)為是這樣的:sayBye                        MEMORY                                                                                        |  => function() {....}                      |bye-------------------但是當(dāng)我在 Firefox 開發(fā)者工具中寫下再見時(shí),我看到了這個(gè)這怎么可能?當(dāng)我寫的時(shí)候,let bye = sayBye;sayBye 被復(fù)制了嗎?let sayBye = function () {    console.log(`Bye`);}let bye = sayBye;   sayBye = null;    // Xbye();            // Yconsole.log(bye);
查看完整描述

3 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊


變量和方法可以從語(yǔ)法位置推斷匿名函數(shù)的名稱(ECMAScript 2015 中的新增功能)。

"sayBye"Chrome 和 Firefox在打印時(shí)都會(huì)給出bye.name.


bye.toString()根據(jù)個(gè)人實(shí)驗(yàn),Chrome 控制臺(tái)會(huì)在詢問 時(shí)顯示bye,而 Firefox 會(huì)顯示他們的自定義輸出,其中顯示推斷的函數(shù)名稱(這確實(shí)有意義,因?yàn)橹烂Q通常有助于調(diào)試)。


查看完整回答
反對(duì) 回復(fù) 2023-08-24
?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

函數(shù)是對(duì)象,因此賦值 x = y 不會(huì)被復(fù)制。我嘗試了這個(gè) Nodejs 我得到


Bye

[Function: sayBye]


如果你沒有命名函數(shù),JS 會(huì)自動(dòng)為其添加名稱。在 ES6 中,您可以使用 myFunction.name檢查函數(shù)的名稱,即“name”是函數(shù)對(duì)象的屬性。重要的是,這是只讀屬性。好的做法是使用constwhile letusing 函數(shù)表達(dá)式。另外,如果可能的話,嘗試命名函數(shù),這樣在調(diào)用堆棧上調(diào)試就很容易


查看完整回答
反對(duì) 回復(fù) 2023-08-24
?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊

您對(duì)函數(shù)的名稱感到困惑。

記憶中的事情發(fā)生的方式和你想象的完全一樣。

但是,該函數(shù)沒有顯式名稱,因此瀏覽器為該函數(shù)提供了一個(gè)隱式名稱,即首先分配給它的變量或?qū)ο髮傩缘拿Q,在本例中為sayBye.

然后,它被分配給另一個(gè)變量,但名稱不變。

如果你給它一個(gè)明確的名稱,你可以看到這一點(diǎn):


//? Explicit name ----vvvv

let sayBye = function myFn() {

? ? console.log(`Bye`);

}


let bye = sayBye;? ?

sayBye = null;? ? // X


bye();? ? ? ? ? ? // Y


console.log(bye);


查看完整回答
反對(duì) 回復(fù) 2023-08-24
  • 3 回答
  • 0 關(guān)注
  • 213 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)