国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

詳解JavaScript作用域、作用域鏈和閉包的用法

瀏覽:59日期:2023-10-15 17:02:14

1. 作用域

作用域是指可訪問的變量和函數的集合。

作用域可分為全局作用域和局部作用域。

1.1 全局作用域

全局作用域是指最外層函數外面定義的變量和函數的集合。

換言之,這些最外層函數外面定義的變量和函數在任何地方都能訪問。

舉個例子:

// 最外層定義變量var a = 1;console.log(a); // 最外層可以訪問function fnOne() { // 最外層函數 console.log(a); // 函數內可以訪問 function fnTwo() { // 子函數 console.log(a); // 子函數內也可以訪問 }}// 說明在最外面定義一個變量,不僅在最外面可以訪問,在函數內也能訪問,在函數的子函數內也能訪問。

1.2 局部作用域

局部作用域是指在函數內部定義的變量和函數的集合。

換言之,這些在函數內部定義的變量和函數,在函數外面是無法訪問的,只能在函數內部(包括函數的子孫函數)訪問。

舉個例子:

function fnThree() { // 在函數內定義變量 var b = 2; console.log(b); // 函數內部可以訪問 function fnFour() { console.log(b); // 子函數內也能訪問 }}// 函數外不能訪問//console.log(b); // 說明在函數 fnThree 中定義一個變量 b ,在函數內可以訪問,在子函數 fnFour 中也能訪問,但在 函數 fnThree 外是不能訪問的。

2. 作用域鏈

從上面的兩個例子可以看出,最里層的子函數不僅可以訪問最外層函數內的變量,還能訪問最外層函數外的全局變量。

這是因為,在創建最外層函數的時候,會把全局作用域拿過來,然后在創建子函數時候,又會把最外層的作用域(包括全局作用域)拿過來,就這樣一環扣一環,就形成了作用域鏈。

所以,作用域鏈是指內層函數擁有外層函數到最外層(最外層函數外,全局)的所有作用域列表。

3. 閉包

閉包就是能夠讀取其他函數內部變量的函數。(——百度百科)

從上面的第二個例子可知,函數外是不能訪問函數內部定義的局部變量,但是閉包提供了可能。

舉個例子:

function User() {// 定義私有變量var userName = 'default';// 提供 setUserName() 方法function setUserName(uName) {userName = uName;}// 提供 getUserName() 方法function getUserName() {return userName;}// 將方法對外開放return {set: setUserName,get: getUserName}}var user1 = User();user1.set(’tom’);console.log(user1.get());var user2 = User();user2.set(’jack’);console.log(user2.get());// 說明User 函數內部定義變量 uesrName ,并在內部定義兩個子函數操作 userName,最后將兩個子函數返回(一個可直接放回,多個可放到對象中返回。)。這樣,在函數外面可以調用子函數訪問函數內部的變量,這兩個子函數便實現了閉包的功能。

以上就是詳解JavaScript作用域、作用域鏈和閉包的用法的詳細內容,更多關于JavaScript作用域、作用域鏈和閉包的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 久久香焦 | 美女曰皮 | 国产成人精品午夜在线播放 | 国产成人精品免费视频大全软件 | 亚洲人成网站在线观看播放 | 一本综合久久国产二区 | 一级国产精品一级国产精品片 | 国产成人一区二区视频在线观看 | 欧美三级香港三级日本三级 | 国产亚洲一欧美一区二区三区 | www.精品| 免费一级特黄欧美大片勹久久网 | 国产精品午夜免费观看网站 | 亚洲精品久久9热 | 九九在线偷拍视频在线播放 | 1024香蕉视频在线播放 | 在线中文字幕精品第5页 | 在线观看99 | 成人免费观看视频久爱网 | 91免费国产高清观看 | 欧美一级别 | 国产精品特黄一级国产大片 | 亚洲伦 | 久久久久免费 | 国产高清自拍视频 | 亚洲日本高清影院毛片 | 在线播放免费播放av片 | 亚洲精品成人一区二区aⅴ 亚洲精品成人一区二区www | 久久免费观看国产精品 | 中文字幕一二三区 | 国产中文字幕在线播放 | 一区二区三区日本视频 | 男人亚洲天堂 | 欧美真人视频一级毛片 | 午夜在线播放免费人成无 | 日韩色视频一区二区三区亚洲 | 欧美aaa大片 | 亚洲成人福利网站 | fc2久久| 久久综合久久久久 | 国产欧美日韩综合精品一区二区三区 |