x={a:{b:{c:1}}}这个Object, 如果是x.a还可以写作x['a'], 然而x.a.b.c却只能写作x['a']['b']['c'], 对于深度不定的Object来说, 会比较难以引用.
一个简单的方式是用危险的eval函数, 写作eval('x.a.b.c').
那么eval又这么危险, 又推荐了比较安全Function函数:

Function('return x.a.b.c')()

否则就要更加复杂啦:

function objValue(str){
var keys = str.split('.')
var current = this
for(var key of keys){ current = current[key] }
return current
}
objValue('x.a.b.c')

标签: none 阅读量: 1152

添加新评论