我有一个数组,其中包含用于控制模板的变量。
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()来实现这一点,但是,它显示了“未捕获的赋值:赋值中的无效左手边”(Uncaught: Invalid left-hand in assignment)。有什么建议,如何做到这一点?
发布于 2018-06-05 03:32:08
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;
}
}
https://stackoverflow.com/questions/50687537
复制相似问题