-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

ただし、これを実行すると、次のエラーが発生します。

キャッチされていない TypeError: オブジェクト クロックにはメソッド 'once' がありません

once()を使用して手動で呼び出すと正常にclock.once()動作します。

4

1 に答える 1

1

[id].onceクロックオブジェクトを含む作成した特定の配列を参照していないため、機能しません。クロック オブジェクトの複数のインスタンスを格納した特定の配列が必要になります (適切な配列を作成した場合)。

以前にクロック オブジェクトの配列を作成していた場合:

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

次に、id がその配列への有効なインデックスであると仮定して、次のようにその特定の配列にインデックスを付けることができます。

clocks[id]

文字列を数値に変換する方法を本当に知りたいだけの場合は、いくつかの方法で実行できます。以下に、2 つの一般的な方法を示します。

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