2

重複の可能性:
Javascript 動的変数名

変数に依存する名前を持つ関数を JavaScript で作成しようとしています。

例えば:

var myFuncName = 'somethingWicked';
function myFuncName(){console.log('wicked');};
somethingWicked(); // consoles 'wicked'

私はそれを行う方法を理解できないようです....私はそれを評価しようとしましたが、後で関数を使用しようとすると「存在しません」..または正確にはReferenceErrorが発生します関数が未定義であること...

どんな助けでも大歓迎です。

4

3 に答える 3

4

関数をオブジェクトに割り当てて、次のように参照できます。

var funcs = {};
var myFuncName = 'somethingWicked';
funcs[myFuncName] = function(){console.log('wicked');};
funcs.somethingWicked(); // consoles 'wicked'

または、それらをグローバルとして保持することもできますが、それでもwindowオブジェクトを介してそれらを割り当てる必要があります。

var myFuncName = 'somethingWicked';
window[myFuncName] = function(){console.log('wicked');};
somethingWicked(); // consoles 'wicked'
于 2012-11-20T17:34:59.523 に答える
0

変数の動的な名前に依存するものを作成する必要があるときはいつでも、代わりにオブジェクトまたは配列メンバーのプロパティを使用する必要があります。

var myRelatedFunctions = {};
var myFuncName = 'somethingWicked';
myRelatedFunctions[myFuncName] = function (){console.log('wicked');};
myRelatedFunctions['somethingWicked']()
于 2012-11-20T17:35:33.443 に答える
0
var myFuncName = 'somethingWicked';
window[myFuncName] = function(){console.log('wicked');};
somethingWicked(); // consoles 'wicked'
于 2012-11-20T17:34:48.223 に答える