欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

輕松學(xué)習(xí)Javascript閉包函數(shù)

 更新時間:2022年05月06日 15:04:47   作者:喜愛編程的人  
這篇文章主要幫助大家輕松學(xué)習(xí)掌握J(rèn)avascript閉包函數(shù),從閉包的含義出發(fā),由淺入深學(xué)習(xí)Javascript閉包函數(shù),感興趣的小伙伴們可以參考一下

閉包函數(shù)是什么?在開始學(xué)習(xí)的閉包的時候,大家很能都比較難理解.就從他的官方解釋來說,都是比較概念化的.

不過我們也還是從閉包的含義出發(fā)。
閉包是指函數(shù)有自由獨(dú)立的變量。換句話說,定義在閉包中的函數(shù)可以“記憶”它創(chuàng)建時候的環(huán)境。
官方解釋說完后,我們先來看一個簡單計數(shù)的例子.

var c = 0;
function count(){
c++;
}
count();// 1
count();// 2

這個例子是利用了全局變量來實(shí)現(xiàn),但是這里有個問題是,c這個變量也容易被其他方式所調(diào)用,這時候就可能會改變 c 的存儲值.造成這個count計數(shù)的失效.那怎么很好的處理這個問題呢!我們會想到的是使用局部變量的方式來處理.比如:

function count(){
 var c = 0;
 function add(){
  c++;
 }
 add();
}
count();// c = 1
count();// c = 1

因?yàn)檫@樣創(chuàng)建之后,內(nèi)部變量只存在于count函數(shù)創(chuàng)建執(zhí)行的時候,執(zhí)行完之后,整個函數(shù)就會被丟棄掉.就無法達(dá)到有記憶的能力.那要怎么來實(shí)現(xiàn)呢?那我們就用閉包來解決.我要重新提一次:閉包 = 函數(shù) + 環(huán)境

function count(){
  var c = 0;
  function add(){
   c++;
  }
  return add;
}
var ct = count();
ct(); // c = 1
ct(); // c = 2

這個時候我們就可以通過這個閉包來完成計數(shù)的能力.ct就是一個閉包函數(shù),內(nèi)部的環(huán)境就是這個局部變量 c. 這里我們達(dá)到的就是內(nèi)部數(shù)據(jù),外部來操作.那閉包除了這個還有什么其他功能呢?

用閉包模擬私有方法
這有點(diǎn)像JAVA的私有方法或者私有變量,只能允許自己來操作!如果外部操作,就需要設(shè)定公開的方法來操作.

var person = (function(){
  var _name = "編程的人";
  var age = 20;
  return {
   add:function(){
     age++;
   },
   jian:function(){
     age--;
   },
   getAge:function() {
     return age;
   },
   getName:function(){
     return _name;
   },
   setName: function (name) {
     _name = name;        
   }
  }
})();
person.add();
var age = person.getAge();
console.log(age)
person.setName("編程的人公眾號:bianchengderen")
console.log(person.getName())

這里應(yīng)該很容易理解了吧! 有點(diǎn)面向?qū)ο缶幊痰母杏X。當(dāng)然Javascript現(xiàn)在也有面向?qū)ο缶幊痰奶攸c(diǎn).這點(diǎn)我們以后來說明.
目前為止,我們從計數(shù)到內(nèi)部私有化的例子,來說明閉包,希望大家能簡單明白其中的道理,當(dāng)然閉包還有其他的功能利用是比較方便的。

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)javascript程序設(shè)計有所幫助。

相關(guān)文章

  • js實(shí)現(xiàn)點(diǎn)擊按鈕彈出上傳文件的窗口

    js實(shí)現(xiàn)點(diǎn)擊按鈕彈出上傳文件的窗口

    本文主要介紹了js實(shí)現(xiàn)點(diǎn)擊按鈕彈出上傳文件的窗口的實(shí)例方法。具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • JS排序之冒泡排序詳解

    JS排序之冒泡排序詳解

    這篇文章主要為大家詳細(xì)介紹了JS冒泡排序的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 如何利用Javascript生成平滑曲線詳解

    如何利用Javascript生成平滑曲線詳解

    相信大家都遇到過,在各種圖表框架中經(jīng)常會有將一段折線平滑的需求,不僅能給用戶帶來一種柔和的感覺,還能美化界面,讓折線看起來沒那么生硬,這篇文章主要給大家介紹了關(guān)于如何利用Javascript生成平滑曲線的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • p5.js繪制創(chuàng)意自畫像

    p5.js繪制創(chuàng)意自畫像

    這篇文章主要為大家詳細(xì)介紹了p5.js繪制創(chuàng)意自畫像,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • js實(shí)現(xiàn)隨機(jī)抽選效果、隨機(jī)抽選紅色球效果

    js實(shí)現(xiàn)隨機(jī)抽選效果、隨機(jī)抽選紅色球效果

    本文主要分享了js實(shí)現(xiàn)隨機(jī)抽選效果、隨機(jī)抽選紅色球效果的示例代碼。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 基于JavaScript+HTML編寫一個日期選擇插件

    基于JavaScript+HTML編寫一個日期選擇插件

    在現(xiàn)代Web應(yīng)用程序中,日期選擇器是一個非常常見的組件,用戶可以使用它來選擇特定的日期,在本篇文章中,我們將使用JavaScript和HTML來創(chuàng)建一個簡單但功能強(qiáng)大的日期選擇插件,這個日期選擇插件是比較考驗(yàn)Js基本功的,需要的朋友可以參考下
    2023-10-10
  • JavaScript操作元素實(shí)例大全

    JavaScript操作元素實(shí)例大全

    JavaScript可以對各種網(wǎng)頁元素進(jìn)行操控,下面這篇文章主要給大家介紹了關(guān)于JavaScript操作元素的相關(guān)資料,文中通過多個實(shí)例詳細(xì)介紹了操作元素的方法,需要的朋友可以參考下
    2021-06-06
  • JS實(shí)現(xiàn)的Unicode編碼轉(zhuǎn)換操作示例

    JS實(shí)現(xiàn)的Unicode編碼轉(zhuǎn)換操作示例

    這篇文章主要介紹了JS實(shí)現(xiàn)的Unicode編碼轉(zhuǎn)換操作,結(jié)合完整實(shí)例形式分析了javascript實(shí)現(xiàn)Unicode編碼轉(zhuǎn)換的具體操作技巧,需要的朋友可以參考下
    2017-04-04
  • js學(xué)習(xí)總結(jié)之DOM2兼容處理順序問題的解決方法

    js學(xué)習(xí)總結(jié)之DOM2兼容處理順序問題的解決方法

    這篇文章主要為大家詳細(xì)介紹了DOM2兼容處理順序問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • JavaScript如何禁止Backspace鍵

    JavaScript如何禁止Backspace鍵

    這篇文章主要介紹了JavaScript如何禁止Backspace鍵,可以幫助大家解決“只讀輸入框在IE下按下Backspace鍵回退到前一個頁面”的問題,感興趣的小伙伴們可以參考一下
    2015-12-12

最新評論