亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中閉包含義指的是什么

發布時間:2020-08-29 14:03:18 來源:億速云 閱讀:159 作者:小新 欄目:web開發

JavaScript中閉包含義指的是什么?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

閉包是函數和聲明該函數的詞法環境的組合,當內部函數被保存到外部時,將會生成閉包而閉包會導致原有作用域鏈不釋放,造成內存泄露,但同時閉包也是非常有用的,因為它可以將某些數據與對該數據的操作進行關聯。

例:

function demo() {
  var name = '張三'; // name 是demo()創建的局部變量
  function demo1() { //demo1()是demo()中的內部函數(閉包)
    console.log(name); // 使用父函數中聲明的變量  
    }
  demo1();  
    }demo();

運行結果

JavaScript中閉包含義指的是什么

函數demo()中創建一個名為name的局部變量和一個名為demo1()的內部函數。 demo1()函數只能在demo()函數體內使用。 demo1沒有自己的局部變量。但是由于內部函數可以訪問外部函數的變量,所以demo1()可以訪問父函數demo()中聲明的變量名name。但是如果有同名變量 name 在demo1中被定義,則會使用 自己函數中定義的 name。該例子說明嵌套函數可以訪問在其外部作用域中聲明的變量。

如果上面的代碼改成這樣結果會如何?

function demo() {
  var name = '張三';
  function demo1() {
    console.log(name);
  }
  return demo1;
  }
  var newDemo = demo();
  newDemo();

運行結果

JavaScript中閉包含義指的是什么

由運行結果可知兩段代碼結果一樣,內部函數demo1()在執行之前被外部函數返回形成閉包,在這種情況下,newDemo()是運行demo時所創建的函數demo1的一個引用,所以當調用newDemo()時,變量名name仍可以傳遞給console.log(name)。

示例

function num(x) {
  return function(y) {
    return x + y;
  };}
  var num1= num(2);
  var num2 = num(3);
  console.log(num1(2));// 4
  console.log(num2(2));// 5

運行結果

JavaScript中閉包含義指的是什么

定義一個函數num(x)用于接收一個參數x并返回一個新函數,這個新函數還接收一個參數y并返回x和y之和;同時又定義了兩個新的值num1,num2都為閉包且傳值分別為2,3.

感謝各位的閱讀!看完上述內容,你們對JavaScript中閉包含義指的是什么大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉隆县| 繁昌县| 会东县| 乌鲁木齐县| 阿克苏市| 怀仁县| 宝鸡市| 墨脱县| 桦川县| 资溪县| 贵德县| 河南省| 富平县| 天长市| 南华县| 河东区| 济源市| 资中县| 大荔县| 宁陕县| 兴仁县| 斗六市| 台中市| 偏关县| 临漳县| 罗城| 娱乐| 永昌县| 比如县| 砀山县| 左权县| 龙里县| 肇州县| 贡觉县| 巴彦县| 黄龙县| 汾阳市| 百色市| 山阳县| 临猗县| 东台市|