【发布时间】:2016-05-30 16:03:51
【问题描述】:
我有一个名为foo的对象:
function Foo(){
this.conceal = function(){ ... };
};
还有一个名为toggleView的方法,它遍历foo的集合并在每个实例上调用conceal()方法:
function toggleView(foos){
for(a in foos){
foos[a].conceal();
}
}
当然,foos[a].conceal(); 返回:conceal 不是函数
【问题讨论】:
-
这里没有足够的代码来查看问题所在。如果
foos确实是一个数组,则应该使用带有数字索引的普通for循环,或者使用.forEach()进行迭代。但是,除非foos不是你所说的那样,否则你所拥有的应该是有效的。 -
循环正在访问一个不包含
Foo实例的属性。请注意,for..in循环并不严格限于索引。相关:Why is using “for…in” with array iteration a bad idea? -
您确定使用
new创建Foo 实例吗? -
尝试调用一个函数,先在循环外,看看有没有问题。
标签: javascript object methods invoke