我希望能够在给定列表中的所有对象上调用给定的方法名称。假设我要调用的方法是跳转,并且我有一个具有不同跳转方法的人员列表。有些人会以不同的角度跳跃,有些会更高或更低等等。但是我想在所有篮球运动员名单上调用跳跃方法,以便了解谁将成为球队的一员。
function doMethodToList(list, method){
for(var i = 0; i< list.length; i++){
list[i].method();
}
}
var roster = [new Jack(), new Jill(), new Brody()];
doMethodToList(roster, "jump");
我在想像上面的代码应该有用。但是,在调用doMethodToList(roster, "jump")
时会抛出错误,因为我正在尝试使用字符串作为方法。任何想法如何使这个功能工作?也许我认为这一切都错了?答案非常感谢。
答案 0 :(得分:4)
要使用字符串访问对象的属性,请使用方括号表示法
function doMethodToList(list, method){
for(var i = 0; i< list.length; i++){
list[i][method]();// <-- here
}
}
var roster = [new Jack(), new Jill(), new Brody()];
doMethodToList(roster, "jump");
答案 1 :(得分:4)
您可以在循环中执行以下操作:
if (list[i][method]) list[i][method]();