浅识js —— 沙箱模式

85 阅读1分钟

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