如何在列表中的每个对象上创建一个调用对象方法的函数?

时间:2016-04-16 04:47:19

标签: javascript arrays

我希望能够在给定列表中的所有对象上调用给定的方法名称。假设我要调用的方法是跳转,并且我有一个具有不同跳转方法的人员列表。有些人会以不同的角度跳跃,有些会更高或更低等等。但是我想在所有篮球运动员名单上调用跳跃方法,以便了解谁将成为球队的一员。

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")时会抛出错误,因为我正在尝试使用字符串作为方法。任何想法如何使这个功能工作?也许我认为这一切都错了?答案非常感谢。

2 个答案:

答案 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]();