亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

displayName() 內部函數在執行之前從外部函數返回

displayName() 內部函數在執行之前從外部函數返回

交互式愛情 2023-07-06 19:50:07
function makeFunc() {? var name = 'Mozilla';? function displayName() {? ? alert(name);? }? return displayName;}var myFunc = makeFunc();myFunc();不同(且有趣)的是,displayName() 內部函數在執行之前從外部函數返回。外部函數如何沒有被執行?外部函數是 makeFunc(),displayName() 是內部函數。我可以看到正在打印“Mozilla”。這不是意味著先makeFunc執行然后再執行displayName嗎?我錯過了什么?
查看完整描述

2 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

makeFunc被調用并創建name變量和displayName函數,并返回displayName。當您調用makeFunc它時,它會創建但不執行內部函數。當您調用 時myFunc,name內部的變量makeFunc已經消失,但是,由于displayName引用了它,它是一個閉包,它還保存創建閉包時的 frommyFunc的值。name



查看完整回答
反對 回復 2023-07-06
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

當您調用 makeFunc 時,您正在創建一個作用域函數 displayName,它可以訪問 name 的當前值。然后 makeFunc 返回這個函數。它不會被執行,它的處理方式與對象類似。您可以傳遞該函數。或者像在最后一條語句中那樣顯式執行它。



查看完整回答
反對 回復 2023-07-06
  • 2 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號