4 回答
已采納

Ewall_
TA貢獻27條經驗 獲得超9個贊
先說兩個概念:
匿名函數:就像是變量賦值語句;像 var functionName=function(){ };這種就是匿名函數。
閉包:指有權訪問另一個函數作用域中的變量和函數。
一般來說常見的這種,在一個函數內部創建另一個函數就是一個閉包。
function?functionName1(){ ????var?example="something"; ????function?functionName2(){ ????????//函數體 ????}; };
functionName2里面的函數體有權訪問到它不包含的變量example;此變量在另一個函數中,所以functionName2就是一個閉包。

qq_奈奈奈_03699702
TA貢獻19條經驗 獲得超5個贊
?(function(){ ????????var?arr=[]; ????????(function(){ ????????????console.log(j);//undefined ????????})(); ????????var?j=2; ????????function?go(){ ????????????console.log(j);//2 ????????} ????????for(var?i=0;i<5;i++){ ????????????arr[i]=function(){ ????????????????console.log(i); ????????????} ????????} ????????return?arr[0]();//5 ????})();
高級程序設計相關部分反復看。

鱸先森
TA貢獻5條經驗 獲得超2個贊
閉包
閉包是指有權訪問另一個函數作用域中的變量的函數。創建閉包的常見方式就是在一個函數內部創建另一個函數。
function outer() {
? ?var localVal = 30;
? ?return function() {
? ?//在函數內創建一個匿名函數,這個函數可以通過作用域鏈可以訪問外部的變量
? ? ? ?return localVal;
? ?}
}
var func = outer();
console.log(localVal);// localVal is not defined(…)
//外部無法訪問函數內的變量。
func();//30
之前記的筆記,你可以參考一下
添加回答
舉報
0/150
提交
取消