闭包

  前言

c86d033c81ebf167d7c867ceef62f983.png

 我是歌谣 最好的种树是十年前 其次是现在 今天继续给大家带来的是闭包的讲解

  环境配置

707a561aaaf696b107bbedac6667a7f4.png

npm init -y
yarn add vite -D

 修改page.json配置端口

83c12261c598a53001496f00c0cacfb2.png

{
  "name": "demo1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "vite --port 3002"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "vite": "^4.4.9"
  }
}

 案例1

139e506e2c0cf3aedd1a8e3c43701405.png

function test1(){
    function test2(){
        var b=2;
        console.log(a)
    }
    var a=1;
    return test2()
}
var c=3
var test3=test1();

分析

3c8fd842ec33ad0bf2f6e1ec729d714c.png

d6589d1a9294e97dd70165c37579515a.png

23f75f4a7c573696e44f00efede0b529.png

1e184f84a7ffc44f122cbf0476d2858c.png

a2f3d1ada87ef58ae8cfbf798aa962ba.png

78296e617549d347d518e710a279eaa5.png

案例2

91f4df0bf1fdfe726e26fb47b51e75b3.png

function test(){
    var n=100
    function add(){
        n++
        console.log(n)
    }
    function reduce(){
        n--
        console.log(n)
    }
    return [add,reduce]
}
var arr=test()
arr[0]()
arr[1]()

 运行结果

11f15dfff96417c3ed1205902318bb7a.png

8fcf7395242fd1b42e559058a8d98d71.png

 案例2

986a91158c10cc7c6d048a2264750442.png

function breadMsg(num) {
    var breadNum = arguments[0] || 10
    function supply() {
        breadNum += 10
        console.log(breadNum)
    }
    function sale() {
        breadNum -= 10
        console.log(breadNum)
    }
    return [supply, sale]
}
var breadMsg = breadMsg(50)
breadMsg[0](10)

 运行结果

3e48e4b875eb7578e7a351d845ebc9ad.png

edfc1c3c402384eaa2fe07eb51206d82.png

 案列3

4695f5e7a5f51e25c9a3be1e3b997288.png

function sunSched(){
    var sunSched=''
    var opration={
        setSched:function(thing){
            sunSched=thing
        },
        showSched:function(){
            console.log("MY schedule on sunday is "+sunSched)
        }
    }
    return opration
}
var sunSch=sunSched()
sunSch.setSched("studying")
sunSch.showSched()

 运行结果

a828085770fc04c92a5bb93674b343a8.png

bbaf5fafa508593b11deb917951facae.png

点击上方蓝字关注我们

d10a63cf54a057b67d66733e22c37864.png

下方查看历史文章

5e45455f5c50f33ed997f857aafa5644.png

递归

函数参数默认值

函数基础

caller和caller

posted @ 2023-11-03 08:01  前端导师歌谣  阅读(9)  评论(0)    收藏  举报  来源