语法糖:
使用起来很方便,但看起来不舒服.
闭包的语法糖:getter 获取器 和 setter 设置器
**作用:**把制作闭包想做的事情,伪装成一个对象内部的成员.
语法:
- 要形成闭包
- 返回值是一个对象
- 在对象里面以getter 和 setter的语法形式返回函数
{
get 函数名(){},
set 函数名(){}
}
function fn() {
var num = 100
return {
getNum () {
return num
},
setNum (val) {
num = val
}
}
}
const res = fn()
console.log(res.getNum())
res.setNum(300)
console.log(res.getNum())
function fun() {
var num = 100
return {
get num() {
return num
},
set num(val) {
num = val
}
}
}
// res 接收的还是 fun 里面返回的对象
// 对象里面除了有 getNum 函数
// 还把 getNum 作为一个成员存储起来了
// 把 getNum 的返回值作为 getNum 这个成员的值使用
// 把原先的 getNum 函数作为了获取器的存在
// 对象里面会有一个 setNum 设置器
// 当你给 setNum 设置器赋值的时候, 就是在调用 setNum 函数, 传递参数
const res2 = fun()
console.log(res2.num)
res2.num = 300 // 相当于原先的 res2.setNum(300)
console.log(res2.num)
console.log(res2)