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