js闭包练习

闭包是指
function outer() {
var h = ‘变量1’
var inner = function () {
console.info(h)
}
return inner // inner 就是一个闭包函数,因为他能够访问到函数的作用域
}
但是 闭包中的函数
有权在函数内访问另一个函数作用域中的变量,并且将该函数返回
案例
function show(){
var num=10;
console.1og(‘run’);
return function(){
console.1og(num);
// var fn=show();
// fn();
show( )() ;//show执行完返回一个函数然后让函数自我执行
案例
var arr = [];
for(vari=0;i<3;i++){
arr[i] = function() {
console.1og(i);
console. 1og(i);//输出3
原因:按照顺序结构先执行for循环在输出i的值arr未被调用不能输出0 1 2
修改
var arr = [];
//定义arr是一个数组
for(vari=0;i<3;i++){
arr[i] = (function(a) {
//函数赋予数组内
return function() {
//返回一个新的函数
console.1og(a);
//新函数的函数体
};
})(i); .
//执行匿名函数并得到返回值函数(赋值之后也可以直接用()调用赋给
-个变后可以用变量名()调用)
}
console.1og(arr);
/查看arr数组内容得到三个返回的函数
for (var j in arr) {
//循环得到arr引
arrj; //3
//执行arr[0~arr.length-1]的函数
querySelectorAll ( ‘div’ )寻找所有的div标签可以索引ie不支持
querySelector ( ‘div’ )找第一个div
arguments :能够被接受的参数无论接没接到常用于字符拼接

闭包练习

var lis = document.getElementsByClassName(‘item’)
for (var i = 0; i < lis.length; i++) {
lis[i].onclick = function () {
var oUl = this.children[0];
var dis = window.getComputedStyle(oUl, null).display;
if (dis == ‘block’) {
oUl.style.display = ‘none’;
} else {
oUl.style.display = ‘block’;
}
};
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值