js基础知识——沙箱模式
一、沙箱模式
- 利用了 函数内 "间接" 的返回了一个函数
- 外部函数 返回了 一个对象, 这个对象内书写多个函数
function outer() {
// 1. 放置一些外部函数的私有变量
let a = 0
let b = 999
// 2. 对象内部放置若干个 函数
const obj = {
getA: function () {
return a
},
setA: function (val) {
a = val
},
getB() {
return b
},
setB(val) {
b = val
}
}
// 3. 将对象返回到函数外
return obj
}
// 得到 函数内部的对象, 这个对象内部有多个操作函数
const res = outer()
// 得到函数内部的私有变量 a
let winA = res.getA()
// 修改函数内部的私有变量 a
res.setA(winA + 1)
console.log(res.getA())
二、沙箱模式语法糖
语法糖?
- 在不影响功能的情况下, 给我们提供了一些更简单的操作方式
- 普通版代码
// 普通版
function outer(){
let a = 1
return{
getA () {
return a
},
setA (val) {
a = val
}
}
}
const res = outer()
res.setA(99)
console.log(res.getA)
- 语法糖版:其实就是利用getter 和setter帮助我们简化一些操作与代码
function outer () {
let a = 1
return{
get a () { //获取a
},
set a(val) { //修改a
a = val
}
}
}
const res = outer()
console.log(res.a) // 1
res.a = 666 //修改a的值
console.log(res.a) //666