5

重複の可能性:
var fn = function(){…}とvar fn = function foo(){…}は異なりますか?

ここから

JavaScriptの関数式と宣言の違いは何ですか?

関数の宣言と変数としての宣言には違いがあることを理解しています。

しかし、次の間に違いがあるかどうかは明らかではありません。

var func_name = function(param, param1){...};

と:

var func_name = function func_name(param, param1){...};

それらは完全に同一ですか?

4

4 に答える 4

3

JavaScriptで関数を宣言する方法は2つあります。

関数宣言

関数宣言はステートメントであるため、functionキーワードで始まり、関数に名前を付ける必要があります。

これらもコードの実行が開始される前に解析されるため、以下のコードはエラーをスローしません。

foo(); // "foo" exists because it was created at parse time
function foo() {
}

関数式

関数式は、名前が示すように、です。式の関数は他の値(数値、文字列など)と同様に扱われ、名前の付け方は完全にオプションです。

式の関数は実行時に作成されるため、以下のコードは期待値 スローします。

foo(); // "foo" does not exist yes because it will not be created until the line below is executed
var foo = function() {
}

関数名

関数名は主に良い2つのことです。

  1. 関数宣言の呼び出し
  2. 関数内から関数オブジェクトにアクセスする

前述のように、式の場合、名前は省略できます。したがって、いわゆる無名関数を作成します

したがって、あなたの例では、 2つの関数式があります。1つは無名関数で、もう1つはそうではありません。

参照: http: //bonsaiden.github.com/JavaScript-Garden/#function.general

于 2012-10-21T17:19:11.627 に答える
1

答えはいいえだ"。

関数内では、いつでもその名前で関数を呼び出すことができます。

var func_name = function other_0func_name(param, param1){
..... ;
other_func_name()};
于 2012-10-21T17:19:13.913 に答える
0
var func_name = function(param, param1){...};

匿名関数を作成し、変数「func_name」に割り当てます

var func_name = function func_name(param, param1){...};

「func_name」という名前の関数を作成し、その関数を変数「func_name」に割り当てます。

コンソールでこれらの2行をテストすると、次のように表示されます。

var func_name = function(param, param1){};
console.log(func_name)

あげる

function (param, param1){}

一方

var func_name = function func_name(param, param1){};
console.log(func_name)

あげる

function func_name(param, param1){}

使い方に違いはありませんので、目的は同じです。これがそれをクリアすることを願っています。

于 2012-10-21T17:27:51.010 に答える