javaScript

javascript object链式调用结果

2019-04-12  本文已影响0人  反者道之动001

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--

上一篇下一篇

猜你喜欢

热点阅读