javascript闭包简单实例 |
您所在的位置:网站首页 › js闭包应用实例 › javascript闭包简单实例 |
1 闭包实例
下图是一个闭包实例; 闭包Demo闭包Demo。 function a(){ var n = 0; this.inc = function () { n++; console.log(n); }; } var c = new a(); c.inc(); //控制台输出1 c.inc(); //控制台输出2每次运行在控制台输出1和2; 有权访问另一个函数作用域内变量的函数都是闭包。这里 inc 函数访问了构造函数 a 里面的变量 n,所以形成了一个闭包。 如果没学过闭包不太好理解;下面来看一下闭包原理; 2 计数器困境闭包是由 计数器困境 而提出的语法;先理解这个就可以理解闭包; 在js中,下面代码实现了counter每次加1,但是counter的值也可能被其他代码改变;因为此时counter是全局变量; 如下,把counter定义在函数内部,其他代码不能改变counter,但是counter不能每次加1; 这就是 计数器困境; 3 javascript闭包在 JavaScript 中,所有函数都能访问它们上一层的作用域。 JavaScript 支持嵌套函数。嵌套函数可以访问上一层的函数变量。 如下,定义counter在函数内部,并使用嵌套函数,就解决了计数器困境; 这是闭包的基本例子; 闭包使得函数拥有私有变量变成可能;
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |