js闭包面试题目
<!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>
该题目考的闭包