浅谈js的作用域(scope) - 流光韶逝的个人空间

本文详细介绍了JavaScript中的作用域概念,并对比了与Java的区别。通过具体的示例代码解释了变量声明、作用域链以及变量覆盖等核心特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js的作用域和java有很大的区别;在一个java类中,类的成员变量不可能和方法新建的变量重名;js则无此问题. 总的来说,js创建对象的作用域的特点有三条: 1.每var 一次 就在当前作用域中添加一个变量 ;不var就在全局内“向上就近”覆盖变量(没有旧对象覆盖则windows作用域内新建)。

 2.覆盖的话是就近覆盖:如果被添加变量的"向上就近"作用域中有同名变量 会被覆盖掉;

3.方法执行的时候会从作用域链的右端开始查找变量(就近向上查找)        

可以firebug断点运行以下js,  以查看效果,与三条参照.

var a=2;   var foo=function(){    var a=3,b=5;    var  bar = function(){    var b = 7,c=11;//var b,http://ningbfpdk.tumblr.com/,则b为bar内的新变量,    a+=b+c;//执行完a为21,就近向上覆盖到了foo函数内的a;    }     bar();   }//foo函数结束时,http://nantfpk.tumblr.com/,foo函数内的a为21,b为5;而页面(全局)变量a仍为2;   function soo(){    a = 12;   } //执行完页面变量a=12,就近覆盖全局变量a;   function  new(){    b = 15;//向上作用域无变量b,http://wenzfpk.tumblr.com,则新建全局变量b=15;   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值