0

三項演算子を使用して関数名を宣言することは可能ですか?

var foo,
    bar = 'bar';

(foo || bar) = function(){ // Invalid left-hand side in assignment [Bad assignment]
    alert(true);
};

[foo || bar] = function(){ // Invalid left-hand side in assignment [Bad assignment]
    alert(true);
};

(foo ? foo : bar) = function(){ // Invalid left-hand side in assignment [Bad assignment]
    alert(true);
};
4

2 に答える 2

2
this[foo || bar] = function(){alert(true)}

物事は、bar「バー」に等しい場合、関数で自分自身を上書きすることになります...

于 2013-01-24T07:00:36.610 に答える
0

あなたが本当に欲しいのはこのようなものですか?

window[foo ? foo : bar] = function (){
    alert(true);
};

「ウィンドウ」は一部の環境では使用できないことに注意してください。ただし、すべてのブラウザで使用できるはずです。

于 2013-01-24T07:00:58.573 に答える