仍記得剛來到公司的時候,老大跟我們說起原型鏈、閉包、MV*之類的東西,當時真的是一臉懵逼的樣子啊哈哈 在公司做前端開發也差不多四個月了,每一天感覺都是很忙碌,都是忙著寫業務代碼或者自己在學習新東西,總感覺很多知識點在這樣的狀態下,匆匆忙忙就略過了,自己並沒有真正理解掌握下來,還是要趁有時間還是把那些
仍記得剛來到公司的時候,老大跟我們說起原型鏈、閉包、MV*之類的東西,當時真的是一臉懵逼的樣子啊哈哈
在公司做前端開發也差不多四個月了,每一天感覺都是很忙碌,都是忙著寫業務代碼或者自己在學習新東西,總感覺很多知識點在這樣的狀態下,匆匆忙忙就略過了,自己並沒有真正理解掌握下來,還是要趁有時間還是把那些東西撿回來
先看一段JS代碼:
function a(){ var num = 0; function b(){ num++; console.log(num); } return b; } var add = a(); add(); // 1 add(); // 2 add(); // 3
這段代碼的特點:
·函數a裡面定義了一個函數b,函數b裡面的操作讓變數num自加的,最後一句是return b,將函數b返回了;
·add變數是指向了函數a的(有點像C的指針),函數a裡面的函數b是被外部變數add引用了,函數b就形成了一個閉包了。
那閉包一般用來幹嘛呢?
·在JavaScript模擬實現塊級作用域,封裝私有變數,防止污染全局變數
舉個慄子