3

関数は 2 つの方法で記述できます。

var v1 = m1('hello'); // error
var v2 = m2('hello'); // OK

var m1 = function(param){ 
    // ... 
    return param; 
}

function m2(param){
    // ...
    return param;
}

var v1 = m1('hello'); // OK
var v2 = m2('hello'); // OK

私が知っているように、違いは1つだけです-作成時間:
m2コンパイル時間であるため、私の場合のように「前に」宣言を使用できます。
m1割り当て時に(コードは行ごとに実行されます)、以前は使用できません。

メモリとパフォーマンスのどちらがより効率的ですか?
どちらの場合、一方がよりセマンティックで、どちらの場合が 2 番目ですか?
次の違いはここですか?
1 つ目と 2 つ目をいつ使用する必要がありますか?

.

//非常に原始的なパフォーマンス テストを編集-同じ結果
// http://jsperf.com/performance-function-writing-way

4

3 に答える 3

1

特定の名前でのみ関数を利用できるようにしたい場合、最小限の方法は代入なしで書くことです。追加のアクションを実行したり、追加のコードを記述したりする必要がないという理由だけで、呼び出すことができる関数が必要なだけです。

あなたが書いた代入のある方法は、無名関数を使用する例であり、実際には無名関数が必要な場合ではありません。この機能の使用例の 1 つは、アクションを特定の関数に引数として渡すことができることです。の jQuery ドキュメントのこのページをhide見てください。この関数は 2 つの引数を受け取ります: アニメーションの長さとアニメーションの完了後に行うアクションです。そのアクションは他の場所では必要ないかもしれません。理由があるかもしれませんが、これらはこの質問の範囲を超えています。

JS 構文では両方が許可されますが、JS で匿名関数を使用できるという副作用があります。

ですから、それは選択と習慣の問題です。

于 2013-09-27T09:08:35.440 に答える