从对象执行JavaScript函数

时间:2010-02-23 15:19:35

标签: javascript function

是否可以这样执行功能:

this.values(value);

this.values[value]();
this.values[value].call();

如果是这样,怎么样?还是其他任何方法?谢谢。

这是我的代码:

write: function(value) {

  this.values = {
    "red": function() { /* do something */ },
    "orange": function() { /* do something */ },
    "blue": function() { /* do something */ }
  };

  return this.values[value]();

}

write("red");

3 个答案:

答案 0 :(得分:4)

可能你可以在里面使用var:

write: function(value) {

  var values = {
    red: function() { /* do something */ },
    orange: function() { /* do something */ },
    blue: function() { /* do something */ }
  };

  return values[value];

}

返回函数而不是在里面运行它。然后叫它。

答案 1 :(得分:1)

没有。但目前它的做法并没有任何问题。

答案 2 :(得分:0)

您可以随时执行此操作:

write: function(value) {    
  switch(value){
    case "red":
    /* do something */
    break;

    case "orange":
    /* do something */
    break;

    case "blue":
    /* do something */
    break;

    default:
    /* do something */
    break;
  }    
}

write("red");