this.prefixMonday [0]存在于当前范围内 this.prefixMonday是一个包含三个复选框的数组 这是在面板
的扩展的initComponent方法中this.weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
for(var i = 0; i<7; i++){
this['prefix' +this.weekdays[i] +'[0]'].on('check',this.someFunction, this);
}
Firebug说找不到:这个['前缀'+ this.weekdays [i] +'[0]']
答案 0 :(得分:2)
我很确定你必须访问
this['prefix' +this.weekdays[i]][0]
否则JavaScript将搜索一个完全匹配字符串'prefixMonday [0]'的密钥 我不认为这是你想要的。为了使其更具可读性,您可能希望使用辅助变量来存储名称:
for(var i = 0; i<7; i++){
var key = 'prefix' +this.weekdays[i];
this[key][0].on('check',this.someFunction, this);
}
答案 1 :(得分:2)
this.prefixMonday[0]
不等同于this['prefixMonday[0]']
。它等同于this['prefixMonday'][0]
。试试
for(var i = 0; i<7; i++){
this['prefix' +this.weekdays[i]][0].on('check',this.someFunction, this);
}
答案 2 :(得分:1)
this['prefix' +this.weekdays[i] +'[0]']
这会产生类似
的东西this['prefixWednesday[0]']
请注意,数组引用位于字符串中,因此您需要查找包含“[0]”作为文字文本的键。你确定你不会更像是:
this['prefixWednesday'][0]...
代替?