标签: 闭包

  • 闭包

    作用:实现数据私有

    内层函数, 引用外层函数上的变量, 就可以形成闭包。

    一个小例子

    function count() {
    	let num = 0 //只能在count函数中访问到
    	function add() {
    		num++
    		console.log(num)
    	}
    //执行count函数会返回add函数,相当于外面可以执行add函数,且不能直接访问修改num
    	return add
    }
    
    //addFN等价于返回的add函数
    let addFN = count()
    addFN() //1
    

    给闭包传值

    function sum(x) {
    	return function (y) {
    		return console.log(x + y)
    	}
    }
    
    //此时传值给sum函数的x
    let fn = sum(3) 
    
    //此时传值给内部匿名函数的y
    fn(10) 
    
    // 控制台结果为13