1

他の誰かのコードを編集して、私は以前に見たことのないパターンに出くわしました:

var functionName = function functionName(){};

そしてしばらくして、このjQueryを使用して関数を呼び出します

$(functionName);

function functionName(){}さて、で呼び出される標準に変更する前にfunctionName();、他の方法で変更する理由はありますか?

編集:関数呼び出しでのjQueryの使用を反映するように更新されました。例を単純化しすぎました。(おっと、ごめんなさい!)

4

5 に答える 5

2
var workerFn = function someDefaultFn() {};

if ( lots of logic) {
  workerFn = function specialFn() {};
}

//// later on

workerFn();

これで、正確に何が呼び出されるかについて柔軟性が得られます。一種の貧乏人のポリモーフィズム。あなたの例では、workerfnをJQueryに渡して呼び出すので、柔軟性の可能性は同じです。

于 2013-03-26T17:05:08.710 に答える
1

関数式を使用する唯一の技術的な理由は、関数の巻き上げを回避すること、および/または関数自体を参照するために別の内部名を使用できるようにすることです。

これらは関数式と関数宣言の唯一の違いであり、それらがまったく関連しているかどうかはコンテキストによって異なります。

于 2013-03-26T16:57:53.070 に答える
0

functionName;何もしないのでバグだと思います。それともあなたの質問のタイプミスですか?

于 2013-03-26T16:52:16.227 に答える
0

functionName;

関数を呼び出さないでしょう。これは関数への単なる参照です。関数を呼び出すには、が必要()です。だから私たちが持っているなら

var functionName = function test(){ alert("0");};

これ

functionName;

それを呼びません。実際、これは何もしません(no-op)。これはと同じです

var x;
x;

これだけ

functionName()

それを呼び出します。

多分それfunctionName;は何か他のもののために使われます。コンテキストがあるかどうかだけがわかります。

于 2013-03-26T16:53:10.370 に答える
-1

[編集]この方法でできるだけ多くのインスタンスを
見つけて作成できます 。同じ関数を呼び出す変数を少なくしたいが、パラメーターが異なる場合にのみ役立ちます。var functionName = function(){};var second = functionName;

ただし、あなたの場合、functionNameには、function functionName() {};が返すものだけが含まれます。

関数の内容には、おそらく次のようなものがあります。

var functionName = function test(param) {
    [...]
    return function(otherParam) { 
        //do something
    };
}
于 2013-03-26T16:49:57.853 に答える