i的作用域问题

先了解一个技术问题:

i的作用域决定i=?

之所以要讲这个问题就是因为我们对这个知识点不了解或在编码的时候不在意,才会导致我们让这么多“死循环”发生。

<script type="text/javascript">
var objObj = {
vaa : function() {
var i = 0;
alert(i);
},
i : 2,
aa : function() {
i = 3;
}
}
alert(objObj.aa());// 1
alert(window.i);//2
alert(objObj.i);//3
objObj.vaa();//4
</script>

这里的i有三个作用域:

代码1,2是创建作用为全局的变量i,这个i 网页中所有的脚本包括引入的.js文件都共应这个变量i

代码3使用的是objObj这个对象的字段,即任何地方要使用这个i必须用objObj.i 才能引用到(当然objObj内部可以用this.i)

代码4使用的是objObj对象方法(函数)中的i,即 方法vaa中的i,这个i 再vaa中定义(注意一定要加上变量描述符var ,如果不加则表示定义全局变量i),其作用域只在vaa函数体内。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值