- 测试代码
let variable={
form:{
a:1,
b:2
}
};
let x="form.a";
console.log('res=',variable[x]);//A
console.log('res=',variable.form.a);//B
我定义veriable是全局变量,x是动态变量名,我想动态获取某个变量的值
用方法A获取不到(因为解析出来的是variable[form.a])
用方案B能获取到,但要写算法把字符串转换成B的形式很麻烦,有没有好的方法
都是理想状态不用处理边界问题的话,一行代码就行读到了
真全局变量
你用let定义的不算
也能用eval
读当然不是真全局变量
eval
也行声明一下以上代码能工作但都不是好办法,最好的办法是封装个函数,或现成的库,比如
lodash
的_.get(object, path, [defaultValue])