这篇文章主要介绍了关于关于js闭包的介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
一、作用域
var x = 0 //全局变量 x
var y = 10 //全局变量 y
var fun1 = function(){
var x = 1 //fun1函数局部变量 x
console.log(x++)
console.log(y)
}
fun1() //输出 1 10 函数内可以访问函数上级的变量
console.log(x) //输出0 函数外部不能调用函数内部的局部变量二、闭包
var x = 0 //全局变量 x
var fun1 = function(){
var x = 1 //fun1函数局部变量 x
function fun2() {
console.log(x++) //当x = 1时 x++ = x ; ++x = x+1
}
return fun2 //此时fun2就是一个闭包
}
var run1 = fun1()
run1() //输出 1
run1() //输出 2 run1是函数是引用类型,上一步运行run1将变量x改变进而影响这步的输出
var run2 = run1
run2() //输出 3 因为run2 = run1 run1和run2是函数属于引用类型 所以共用一个作用域链
run2() //输出 4
var run3 = fun1()
run3() //输出 1 这里不是5 run3有自己的作用域链
run3() //输出 2
console.log(x) //输出 0以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
主要模块:首页商品推荐 /顾客留言发布 /商品分类浏览 /按商品分类、关键字搜索商品 /商品购物车 人信息中心 /显示商品详细介绍以及多图片显示功能 /商品类别管理有分大类中类的类别设定商品搜索类别设定 /商品管理有临时关闭不在线功能 /订单管理 /支付类型管理模块 留言管理 /后台权限分级管理 /密码修改 /新闻管理 /网站配置管理 /滚动广告管理v1.58更新:1、增强支付接口设置。2、内置支








