本文面向初學(xué)者,大神輕噴。
閉包是什么?
初學(xué)javascript的人,都會接觸到一個東西叫做閉包,聽起來感覺很高大上的。網(wǎng)上也有各種五花八門的解釋,其實我個人感覺,沒必要用太理論化的觀念來看待閉包。
事實上,你每天都在用閉包,只是你不知道罷了。
比如:
var cheese = '奶酪'; var test = function(){
alert(cheese);
}
OK,你已經(jīng)寫了一個閉包。
函數(shù)也是一個數(shù)據(jù)類型
變量 cheese 是在全局作用域中的一個變量,當(dāng)你創(chuàng)建了一個 test 函數(shù),那么,test 和 cheese 就共享一個全局作用域。
你要額外明白的一點是,在js中,函數(shù)和變量本質(zhì)上是一個東西。函數(shù)也是一個數(shù)據(jù)類型。
從上面的定義中也能看出來這一點。你要是不相信的話,我們來看一下咯。
alert(cheese); alert(test);