12

私はコードを使用しています:

var x = function() {return true;};

関数の戻り値である x を true に設定しようとしていますが、代わりに x が関数自体として定義されています。関数の戻り値として x を設定するにはどうすればよいですか? 非インライン関数などを使用してこの問題を簡単に回避できますが、簡単な解決策が必要だと確信しているため、バグがあります。

ありがとう。

4

3 に答える 3

32

解決策は、関数を定義してから呼び出すことです (最後に余分な括弧を追加することにより)。

    var x = ( function() {return true;} ) ();
于 2010-01-19T04:12:23.997 に答える
9

関数を実行しているのではなく、x実際に関数になるように設定しています。

variable がある場合y、次のような関数の値を取ることができます。

var x = function(){ return true; };
var y = x();  // y is now set to true.

または、代わりに次のように関数を実行します。

var x = (function(){ return true; })();
于 2010-01-19T04:12:38.350 に答える
2

あなたのコードは関数を定義してに割り当てるだけxで、関数は呼び出されません。()それを呼び出すには、通常の関数呼び出しと同様に、関数を括弧で囲み、その後に追加します。

    var x = 
        (
            function () { 
                return true;
            } 
        )();
于 2010-01-19T04:13:04.100 に答える