美文网首页javaScript
javascript object链式调用结果

javascript object链式调用结果

作者: 反者道之动001 | 来源:发表于2019-04-12 11:31 被阅读0次

    emmm

    说个场景吧,有这么一个函数,

    有一个函数可以set对象的值,但是这个对象是的属性里面还是有对象,这时候在外部就不好修改了。
    如下数据

    var data = {
      a: {
        b: {
          ...
        }
      }
    }
    

    然后有这么一个函数

    setData(state, [setKey, setData]){
      state[setKey] = setData
    }
    

    看起来好像没有问题,但是这时候要修改b的时候,要这样

    setData = {
      ...data,
      b: {
        ...data.b,
        新属性
      }
    }
    

    这样太麻烦了。。

    好了我们写一个简单实现代码:

    var getNextValue = (_object, key) => {
       if(typeof _object !== typeof {})
           return new Error('params error')
       let copy = e => JSON.parse(JSON.stringify(e))
       let keys = key.split('.')
       let result
       let objecChildren
       for(let e of keys){
           objecChildren = copy(objecChildren || _object)[e]
       }
       return objecChildren
    }
    

    拿到值 看到没有

    如图


    但是好像无法修改。。。

    所以我没需要再写一个set函数。

    【】可以用proxy动态修改。

    -- 等下再更新哈---

    --END--

    相关文章

      网友评论

        本文标题:javascript object链式调用结果

        本文链接:https://www.haomeiwen.com/subject/xegqwqtx.html