JavaScript 模仿块级作用域和私有变量
2011-11-17 21:15
387 查看
这是再次看《JS高级程序设计 》做的笔记,加深印象。也供大家共同学习
js中没有块级作用域的概念。看下面例子:
在java,c++中,变量i只会在for循环中有定义,循环一旦结束,变量就会被销毁。可是在js中,变量i是定义在outputNumber()的活动对象中的,因此从它有定义开始,就可以在函数内部随处访问它。
匿名函数可以用来模仿块级作用域并避免这个问题。作用块级作用域(通常称为私有作用域)的匿名函数的语法如下所示:
以上代码定义并立即调用一个匿名函数。
无论在什么地方,只要临时需要一些变量,就可以使用私有作用域。例如:
私有变量:
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"
相关文章推荐
- javascript中的闭包、模仿块级作用域和私有变量
- JavaScript模仿块级作用域与私有变量
- JavaScript中的块级作用域和私有变量
- js 模仿块级作用域(私有作用域)、私有变量
- JS之 函数模仿块级作用域,私有变量,模块模式
- JavaScript中的块级作用域、私有变量与模块模式
- JavaScript闭包-块级作用域和私有变量
- JS:模仿块级作用域及私有变量
- 深入理解JavaScript中的块级作用域、私有变量与模块模式
- [JavaScript] 模拟块级作用域、私有变量/函数
- 高程 7.3 模仿块级作用域 7.4私有变量 7.5小结
- JavaScript匿名函数之模仿块级作用域
- Javascript中模仿块级作用域
- 手把手教你在 JavaScript 中模仿块级作用域
- JavaScript模仿块级作用域
- JavaScript 学习-变量的作用域和块级作用域
- JavaScript的作用域、块级作用域(私有作用域)概念理解
- javascript 模仿块级作用域
- JavaScript:模仿块级作用域
- 浅谈模仿JavaScript的块级作用域