當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript闭包简单实例
生活随笔
收集整理的這篇文章主要介紹了
javascript闭包简单实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 閉包實例
下圖是一個閉包實例;
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> 閉包Demo </title> </head> <body><p>閉包Demo。</p><script> function a(){var n = 0;this.inc = function () {n++; console.log(n);}; } var c = new a(); c.inc(); //控制臺輸出1 c.inc(); //控制臺輸出2 </script></body> </html>? ? 每次運行在控制臺輸出1和2;
? ??有權訪問另一個函數作用域內變量的函數都是閉包。這里 inc 函數訪問了構造函數 a 里面的變量 n,所以形成了一個閉包。
? ? 如果沒學過閉包不太好理解;下面來看一下閉包原理;
2 計數器困境
? ? 閉包是由?計數器困境 而提出的語法;先理解這個就可以理解閉包;
? ? 在js中,下面代碼實現了counter每次加1,但是counter的值也可能被其他代碼改變;因為此時counter是全局變量;
? ? 如下,把counter定義在函數內部,其他代碼不能改變counter,但是counter不能每次加1;?
這就是?計數器困境;
3 javascript閉包
在 JavaScript 中,所有函數都能訪問它們上一層的作用域。
JavaScript 支持嵌套函數。嵌套函數可以訪問上一層的函數變量。
? ? 如下,定義counter在函數內部,并使用嵌套函數,就解決了計數器困境;?
? ? 這是閉包的基本例子;? 閉包使得函數擁有私有變量變成可能;
?
總結
以上是生活随笔為你收集整理的javascript闭包简单实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++对象内存模型学习
- 下一篇: Linux安装jdk学习