8
var objectliteral = {
    func1:fn(){},
    func2:fn(){},
    .................
    funcn:fn(){}
}

ドット表記法を使用して、そのオブジェクト リテラルからメソッドを呼び出すことができることはわかっています。

objectliteral.func1();

しかし、次のような配列表記を使用してそれを行いたいと思います。

objectliteral[func1]. .... something something......

それ、どうやったら出来るの?apply または call メソッドを使用できることはわかっていますが、それらがどのように機能するかはまだよくわかりません。

私はこれを行うことができますか?:

objectliteral[func1].apply();

解像度

回答に基づく:

objectliteral['func1']()

が私が必要な全てです。みんなありがとう。

4

6 に答える 6

14

いいえ、次のようにします。

objectliteral['func1']();

動的な名前を使用することもできます:

var myfuncname='func1';
objectliteral[myfuncname]();
于 2010-12-17T08:47:59.870 に答える
3

次のように実行できます。

var objectLiteral = {
    func1: function() { alert('func1'); },
    func2: function() { alert('func2'); }
};

// This does the same thing...
objectLiteral['func1']();

// As this does
objectLiteral.func1();
于 2010-12-17T08:51:18.597 に答える
1

これを試すことができます:

objectliteral['func1']();
于 2010-12-17T08:48:05.723 に答える
1

ユーザーobjectliteral["funct1"].apply()またはobjectliteral["funct1"]().

変数を使用して関数名を渡すこともできます

var funname = "funct1";
objectliteral[funname ]()
于 2010-12-17T08:48:11.747 に答える
1

できるよobjectliteral["func1"]();

于 2010-12-17T08:48:15.063 に答える
1
var func1 = 'func1'
objectLiteral[func1]();

あなたを働かせるはずです。

于 2010-12-17T08:48:19.443 に答える