問題描述
閉包就是一個可以訪問其他作用域的矢量,這樣的一個函數稱為閉包。
2.算法描述
定義一個函數outer,當outer函數第一次中執(zhí)行時,聲明一個局部變量a=100,以及聲明了第一個函數inner函數的聲明部分并且把inner函數聲明部分返回,當再次執(zhí)行的時候,在自身的作用域中沒有變量a,會沿著作用域鏈向上查詢,而且每次在基礎上加上10。
3. 實驗討論與結果
找出其中的內在邏輯,并寫出過程,帶入值,輸出結果。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> </html> <script type="text/javascript"> function outer (){ var a=100; function inner(){ a+=10 console.log(a); } return inner; } var result =outer(); result(); result(); var result1=outer(); result1(); </script> |
四.結語
閉包問題主要是了解這個邏輯中的主次關系,在大的框架下再進行小的各層次的運算。不同的聲明部分決定了不同的結果,再次進行一個新的計算時。