日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

javascript闭包学习

發布時間:2025/3/21 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript闭包学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(function(){})()===>>>>函數會被立即執行function(){}是一個函數用括號包起來表示是函數表達式再加()表示函數自執行

?如何理解閉包?
1、定義和用法:當一個函數的返回值是另外一個函數,而返回的那個函數如果調用了其父函數內部的其它變量,如果返回的這個函數在外部被執行,就產生了閉包。

2、表現形式:使函數外部能夠調用函數內部定義的變量。

3、實例如下:

(1)、根據作用域鏈的規則,底層作用域沒有聲明的變量,會向上一級找,找到就返回,沒找到就一直找,直到window的變量,沒有就返回undefined。這里明顯count 是函數內部的flag2 的那個count 。

實例1:

var count=10; //全局作用域 標記為flag1 function add(){var count=0; //函數全局作用域 標記為flag2return function(){count+=1; //函數的內部作用域 alert(count);} } var s = add() //這樣寫相當于s就是匿名函數function(){count+=1; alert(count);} s();//輸出1 s();//輸出2

解析:add函數的返回值是一個匿名函數,var s=add();這個時候直接輸入s就會直接執行function add(){}這個函數,那么就會返回匿名函數function(){count+=1; alert(count);} 這時候再執行一下就會輸出匿名函數里面的值

s()=====>>>add()()==>alert(count)

實例2:

函數自我調用閉包

var add = (function () {var counter = 0;return function () {return counter += 1;} })();add(); add(); add();// 計數器為 3

實例解析

變量?add?指定了函數自我調用的返回字值。

自我調用函數只執行一次。設置計數器為 0。并返回函數表達式。

add變量可以作為一個函數使用。非常棒的部分是它可以訪問函數上一層作用域的計數器。

這個叫作 JavaScript?閉包。它使得函數擁有私有變量變成可能。

計數器受匿名函數的作用域保護,只能通過 add 方法修改。

轉載于:https://www.cnblogs.com/qdlhj/p/10615576.html

總結

以上是生活随笔為你收集整理的javascript闭包学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。