闭包

作用:实现数据私有

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

一个小例子

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注