沙箱模式:
设计模式的一种 为了解决特定问题给出的简洁而优化的解决方案.
主要解决变量私有化以后的访问和操作.
使用:利用闭包,把所有的函数或者属性都放在一个函数内部.
function fn() {
var num = 100
var str = 'hello world'
function inner1() {
console.log('我是 inner1 函数')
}
// 间接返回一个函数
return {
getNum: function () {
return num
},
setNum: function (val) {
num = val
}
}
}
// res 接收的是 ? 一个对象, 对象里面有函数, 对象里面的函数, 使用着外部函数的变量
const res = fn()
// 你想拿到 fn 函数内部的 100
console.log(res.getNum())
// 利用闭包函数修改 fn 函数内部的私有变量 num
res.setNum(200)
// 当我再次利用 getNum 闭包函数去访问 fn 里面得 num 的时候
console.log(res.getNum())