我有一个数组,其中包含用于控制模板的变量。
divisionsListToHide: ['showActivitiesList',
'showAssignActionplanDiv',
'showPropertiesListDiv',
'showAddActivityDiv',
'showCurrentActivity',
'editCurrentActivity'
],
我想调用一个方法,将divisionsListToHide数组中包含的所有变量设置为false,即
this.showAssignActionplanDiv = false;
this.showPropertiesListDiv= false;
我正在尝试创建一个方法(函数)来完成此任务:
hideDivisions: function()
{
for(var i = 0;i<this.divisionsListToHide.length;i++)
{
var xx = 'this.' + this.divisionsListToHide[i]; // e.g. this.showActivitiesList
console.log(xx);
eval(xx) = false;
}
},
我希望通过eval()完成此任务,但是,它显示&#34; Uncaught ReferenceError:赋值中的左侧无效&#34;。有什么建议,如何做到这一点?
答案 0 :(得分:1)
this
是一个对象,您可以通过两种方式访问其属性:
this.propertyName
和this["propertyName"]
。这两种方式是相同的,除了第二种方式可以像变量一样使用变量:
var prop = "propertyName";
this[prop] = false; // is equal to this["propertyName] = false, which is equal to this.propertyName = false
所以试试这个:
hideDivisions: function()
{
for (var i = 0; I <this.divisionsListToHide.length; i++)
{
this[this.divisionsListToHide[i]] = false;
}
}