JavaScript 模仿块级作用域和私有变量

这是再次看《JS高级程序设计 》做的笔记,加深印象。也供大家共同学习

js中没有块级作用域的概念。看下面例子:

function outputName(count){
for(var =0;i<count;i++){
alert(i);
}
alert(i);//count
}

在java,c++中,变量i只会在for循环中有定义,循环一旦结束,变量就会被销毁。可是在js中,变量i是定义在outputNumber()的活动对象中的,因此从它有定义开始,就可以在函数内部随处访问它。

     匿名函数可以用来模仿块级作用域并避免这个问题。作用块级作用域(通常称为私有作用域)的匿名函数的语法如下所示:

(functio(){
//这里时块级作用域
})();

以上代码定义并立即调用一个匿名函数。

无论在什么地方,只要临时需要一些变量,就可以使用私有作用域。例如:

function outputNumber(count){
(function(){
for(var i=0;i<count;i++)
alert(i);
})();
alert(i);// i is not defined
}


私有变量:

function Person(name){//name is the private variant
//Here is the privileged method which used to visit
// the privated variant
this.getName=function(){
return name;
};
this.setName=function(value){
name=value;
};
}
var person=new Person("hxj");
alert(person.getName()); //"HXJ"
person.setName("YJH");
alert(person.getName()); //"YJH"





转载于:https://www.cnblogs.com/Jason-Damon/archive/2011/11/17/2253203.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值