-1

可能重复:
如何将字符串值转换为 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()调用函数的对象是从 string中获取的id

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

未捕获的类型错误:对象时钟没有“一次”方法

once()通过使用手动调用clock.once()工作正常。

4

1 回答 1

1

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

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

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

然后,您可以像这样对特定数组进行索引,假设 id 是该数组的有效索引:

clocks[id]

如果您真的只是想问如何将字符串转换为数字,您可以通过多种方式进行操作。这里有两种常见的方法:

parseInt(id, 10)
+id
于 2012-12-24T06:25:25.020 回答