「每日一題」JS 中的閉包是什麼?

大名鼎鼎的閉包!這一題終於來瞭,面試必問。

請用自己的話簡述

  1. 什麼是「閉包」。
  2. 「閉包」的作用是什麼。

由於評論裡不停有人給出錯誤的答案,這裡先聲明:如果你對閉包的理解裡有 return 這個詞,那麼你的理解就是錯的。因為閉包跟 return 沒有任何關系。理由在下文裡講。

---------------------------------------

首先來簡述什麼是閉包

假設上面三行代碼在一個立即執行函數中(為簡明起見,我就不寫立即執行函數瞭,影響讀者理解)。

三行代碼中,有一個局部變量 local,有一個函數 foo,foo 裡面可以訪問到 local 變量。

好瞭這就是一個閉包:

「函數」和「函數內部能訪問到的變量」的總和,就是一個閉包。

就這麼簡單。

有的同學就疑惑瞭,閉包這麼簡單麼?

「我聽說閉包是需要函數套函數,然後 return 一個函數的呀!」

比如這樣:

function foo(){
var local = 1
function bar(){
local++
return local
}
return bar
}

var func = foo()
func()

发表回复

相关推荐

2023年投影儀推薦選購攻略、避坑攻略,最全面攻略 | 小米、明基、愛普生、堅果、極米、大眼橙、傢用客廳臥室投影儀、高清、4K 投影儀推薦

前文概要結論先行(左邊標粗為推薦款):年度最新款/熱賣款投影儀介紹區體驗檔(2000~3000)極米NEW Z6X在同價位裡,性能表現...

· 13秒前

婚姻輔導是什麼東西?婚姻問題找婚姻傢庭咨詢師真的有用嗎?

[婚姻輔導是什麼東西?]“婚姻輔導” 這四個字,聽瞭就好像感覺要出問題瞭!其實恰恰相反 它會幫助你減少許多問題。有些人會...

· 25秒前

落地签也会被拒签?!

现今不少国家都对我国开放了落地签, 本来是一个便利的政策, 一般情况下都能顺利办下来 但是有些小细节不注意也会面临被拒 ...

· 3分钟前

【零基礎芯片課】Day 37 聊聊芯片工程師這個職業

半導體是一個人才、資金、技術密集型的行業,從工作環境、待遇、成長空間角度看比較適合理工科作為工程師的職業優選行業之一...

· 3分钟前

最新28套高质量期末家长会&期末颁奖典礼&期末表彰大会PPT模板!

大家好,我是鱼主任,今天给大家带来最新28套高质量期末家长会&期末颁奖典礼&期末表彰大会PPT模板!

· 4分钟前

Copyright 2015-2025 www.icpchaxun.com ©All Rights Reserved.