[JavaScript] 模拟块级作用域、私有变量/函数
2013-05-10 11:54
639 查看
JavaScript没有块级作用域的概念。
①块语句中定义的变量,实际是在包含函数中而非语句中创建的。即变量i的作用域是它的包含函数outputNumber(),而不是for语句。
在java、C++等语言中,变量i只会在for语句块中定义,循环结束后就被销毁。
②甚至在outputNumber()函数中可以重新声明同一个变量,JavaScript会忽略后续的声明但会执行声明中的初始化。
静态私有变量
function outputNumbers(count){ for (var i=0; i < count; i++){ alert(i); } alert(i); //计数 }
①块语句中定义的变量,实际是在包含函数中而非语句中创建的。即变量i的作用域是它的包含函数outputNumber(),而不是for语句。
在java、C++等语言中,变量i只会在for语句块中定义,循环结束后就被销毁。
②甚至在outputNumber()函数中可以重新声明同一个变量,JavaScript会忽略后续的声明但会执行声明中的初始化。
静态私有变量
(function(){ var name = ""; Person = function(value){ name = value; }; Person.prototype.getName = function(){ return name; }; Person.prototype.setName = function (value){ name = value; }; })(); var person1 = new Person("Nicholas"); alert(person1.getName()); //"Nicholas" person1.setName("Greg"); alert(person1.getName()); //"Greg" var person2 = new Person("Michael"); alert(person1.getName()); //"Michael" alert(person2.getName()); //"Michael"
相关文章推荐
- JavaScript闭包-块级作用域和私有变量
- JavaScript 模仿块级作用域和私有变量
- javascript中变量没有块级作用域---函数内申明的变量在整个函数中都有效!
- JavaScript中的块级作用域、私有变量与模块模式
- javascript中的闭包、模仿块级作用域和私有变量
- 深入理解JavaScript中的块级作用域、私有变量与模块模式
- JS之 函数模仿块级作用域,私有变量,模块模式
- 【学习笔记六】 - js中 创建对象的模式与继承 及 js中实现块级作用域和函数私有变量 《js高程》6-7笔记
- JavaScript中的块级作用域和私有变量
- JavaScript模仿块级作用域与私有变量
- javascript中的回调函数中变量作用域
- Javascript的变量作用域居然可以跨越多个函数!
- javascript 没有块级作用域 JavaScript声明全局变量三种方式 及
- JavaScript学习记录day6-函数变量作用域、解构赋值与方法
- Javascript的变量作用域居然可以跨越多个函数!
- JavaScript 函数总体概述(函数声明/参数传递/返回值/加载/变量和作用域/变量声明提升/匿名函数/回调函数)
- JavaScript的作用域、块级作用域(私有作用域)概念理解
- javascript中的私有变量及如何在函数外部引用这些变量
- JavaScript学习记录day6-函数变量作用域、解构赋值与方法
- javascript的函数内部变量的作用域