闭包经典面试题

// 练习1
// var age = 10;
// function foo(){
//  console.log(age);//
// 	var num = 99;
// 	return function(){
// 		console.log(num);
// 	}
// }
// // console.log(num);//
// var bar = foo();
// bar()


// 练习2
// function addCount(){
// 	var count = 0;
// 	return function(){
// 		count += 1;
// 		console.log(count);
// 	}
// }
// var fun1 = addCount();
// var fun2 = addCount();
// fun1();// 1
// fun1();// 2
// fun1();// 1
// fun2();// 2

// 练习3
// var i = 0;
// function outerFn(){
// 	function innerFn(){
// 		i++;
// 		console.log(i);
// 	}
// 	return innerFn
// }
// var inner1 = outerFn();
// var inner2 = outerFn();
// inner1();//
// inner2();//
// inner1();//
// inner1();//
// inner2();//
// inner2();//


// 练习4
// function fn(){
// 	var a = 3;
// 	return function(){
// 		return ++a;
// 	}
// }
// console.log(fn()());//
// console.log(fn()());//
// console.log(fn()());//
// var newFn = fn();
// console.log(newFn());//
// console.log(newFn());//
// console.log(newFn());//

// 练习5
// (function() { 
//   	var m = 0; 
//   	function getM(){ 
//   		return m; 
//   	}
//   	function seta(val){
//   		m = val;
//   	}
//   	window.g = getM;
//   	window.f = seta;
// })();
// f(100);
// console.log(g());//

// 练习6
// var lis = document.getElementsByTagName("li");
// for(var i=0;i<lis.length;i++){
//   	(function(i){
//         lis[i].onclick = function(){
//             console.log(i);
//         };
//   	})(i);
// }

// 练习7
// function fnnn(){
//   var arr = [];
//   for(var i = 0;i < 5;i ++){
//     arr[i] = function(){
//       return i;
//     }
//   }
//   return arr;
// }
// var list = fnnn();
// // console.log(list);
// for(var i = 0; i < list.length; i ++){
//    console.log(list[i]());
// }


// 练习8
// function fun(n,o) {
//   console.log(o)
//   return {
//     fun:function(m){
//       return fun(m,n);
//     }
//   };
// }
// var a = fun(0);  a.fun(1);  a.fun(2);  a.fun(3);//undefined,?,?,?
// var b = fun(0).fun(1).fun(2).fun(3); //undefined,?,?,?
// var c = fun(0).fun(1);  c.fun(2);  c.fun(3);//undefined,?,?,?
// //问:三行a,b,c的输出分别是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值