有时候在写代码的时候为了使封装的函数更简单更实用,在调用对象并赋值的时候,通常写法都是需要一大堆的js判断,然后有了这个方法,一行代码就可以完事儿。特此总结记录一下.
方法如下:
eval( ' ( that.page.'+et2+'.show=false) ' );
比如有如下对象:
需要更改r1值的时候就是obj.a.items.other.r1=1;
需要更改name值的时候就是obj.a.items.name='zhangsan';
这些写法又长还不能统一在一个函数里调用。
let obj = {
a:{
show:false,
items:{
name:'',
age:'',
sex:'',
other:{
r1:'',
r2:'',
r3:''
}
}
},
...
}
封装一个函数,参数str是反射对象,val是要赋的值。
function filedChange(str,val) {
eval( ' ( obj.'+str+'=val) ' );
}
想要更改obj对象中的任意一个值,直接调用函数:
filedChange('a.items.name','lisi');
打印输出正确:
具体的根据实际项目再进行更改。特此记录。