使用字符串调用函数方法?

时间:2012-12-24 06:22:56

标签: javascript

  

可能重复:
  How to convert a string value to a variable in javascript?

在Javascript中,我有一个看起来像这样的对象:

clock = function(){
    this.load = function(){
        alert("once");
    }

    this.once = function(){
        alert("load");
    }
}
var clock =  new clock();

在页面加载时,我调用时钟对象中的load()函数,如此

clock.load();

但是,当用户点击链接时,我需要能够运行clock.once()。像这样调用它很好,但不符合我正在做的动态需求。

假设我需要在用户点击clock.once()代码时致电<a>

$("a").click(function(){
    var id = $(this).attr("href").match(/[a-zA-Z]+/g);
    [id].once();
}

我认为这样可行,其中调用once()函数的对象是从字符串id中获取的。

但是,在运行时,我收到以下错误:

  

未捕获的TypeError:对象时钟没有方法'一次'

使用once()手动调用clock.once()可以正常工作。

1 个答案:

答案 0 :(得分:1)

[id].once不会起作用,因为您没有引用您创建的包含时钟对象的特定数组。您需要一个特定的数组,其中存储了多个时钟对象实例(如果您构造了正确的数组)。

如果您之前创建了一个时钟对象数组:

var clocks = [];
clocks.push(new clock());
clocks.push(new clock());

然后,你可以像这样索引到那个特定的数组,假设id是该数组的有效索引:

clocks[id]

如果您真的只是想知道如何将字符串转换为数字,那么您可以通过多种方式实现。以下是两种常见方式:

parseInt(id, 10)
+id