<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> /** * 閉包呼叫 * @param n * @param o * @returns {{fun: fun}} */ function fun(n,o) { console.log(o);//列印n return { fun :function (m) { return fun(m,n)//閉包n 繼續呼叫fun(n,o),其中n->m,o->n(上一次的n) } } } /** * 產生了一個閉包 * @type {any} */ var a=fun(0)//undefined 沒有產生新的閉包 a.fun(1)//0 a.fun(2)//0 a.fun(3)//0 /** * 產生了4次閉包 */ var a=fun(0)//undefined .fun(1)//0 .fun(2)//1 .fun(3)//2 /** * 產生2次閉包 */ var a1=fun(0)//undefined .fun(1);//0 a1.fun(2)//1 a1.fun(3)//1 </script> </body> </html>
該題目考的閉包