この記事では、JavaScriptでの匿名関数の使用について説明します。参照のためにそれを共有してください。特定の分析は次のとおりです。
まとめ:
この記事では、JavaScript -Functionsについて最も基本的で重要なことについて説明します。私がこの記事を書いた理由は、インタビュー中にそれを尋ねたからです。
最初に例を見てみましょう。あなたがそれを理解しているなら、それはあなたがこの記事が何について話そうとしているかを理解したことを意味します。
次のようにコードをコピーします:var f =(function(){
function f(){return 10;}
return f();
function f(){return 20;}
var f = 30;
})();
console.log(f);
JavaScript Advancedプログラミングでは、機能がこのように説明されています。任意の数のステートメントをカプセル化することができ、いつでもどこでも呼び出して実行できます。以前に厳格モードを導入しましたが、Strictモードには関数にいくつかの制限があります。
function関数には、評価または引数と命名することはできません
②パラメーターは評価または引数として名前を付けることはできません
③2つの指定されたパラメーターは同じ名前ではありません
上記の状況は構文エラーを引き起こし、コードは実行されません。
関数定義
関数定義は3つのタイプに分かれています
1。コンストラクター
コードコピーは次のとおりです。varfun = new funciton();
2。通常の定義
コードを次のようにコピーします:function fun(){}
3。機能的定義
コードコピーは次のとおりです。varfun = function(){};
3つの方法はすべて、機能の楽しみを定義できます。
パラメーター
関数は、パラメーターが渡されるパラメーターの数も気にしません。また、定義する関数が2つのパラメーターのみを受信している場合でも、この関数を呼び出すときに2つのパラメーターを渡すとは限りません。 1つまたは3つを渡すことも、パラメーターも渡すことができません。その理由は、パラメーターがアレイによって内部的に表されるためです。関数本文では、たとえば、引数オブジェクトを介してパラメーター配列にアクセスできます。
次のようにコードをコピーします:function sayshi(){
alert( "hello" + arguments [0] + "、" + arguments [1]);
}
引数オブジェクトの長さプロパティにアクセスすることにより、パラメーターがいくつあるかを知ることができます。関数の長さは、関数のパラメーターの数を返します。
注:すべてのパラメーターは値を渡し、参照にパラメーターを渡すことは不可能です。
関数は過負荷ではなく、書き直すことができます。
同じ名前の2つの関数が定義されている場合、名前は最後に定義された関数、たとえば以下に属します。
コードコピーは次のとおりです。
関数add(num){
num + 100を返します。
}
関数add(num){
num + 200を返します。
}
var result = add(100)// 300
注:returnステートメントを実行した直後に、関数は停止および終了します。
関数タイプ
関数は、名前関数と匿名関数の2つのタイプに分割されます。たとえば、次の有名な機能
次のようにコードをコピーします:function fun(){
}
呼び出された場合、fun()が必要です。
匿名関数は、名前が示すように、関数名を持っていません。例えば
関数() {}
関数呼び出しは、関数名を介して呼び出されます。匿名関数を呼び出す方法は? 1つは、匿名関数を変数に割り当て、この変数が関数名として機能することです。別の方法は、()を使用してそれを呼び出すことです。たとえば、次の3つの方法です。
1。(function(){return;}());
2。(function(){return;})();
3。function(){return;}();
例:
コードコピーは次のとおりです。
(function(x、y){
アラート(x + y);
})(2,3);
//アラート(5)
2と3はxおよびyにパラメーターとして渡されます
一番の例について話しましょう。この例には閉鎖が含まれ、後で説明します。
最初に、変数fを定義し、次に匿名関数を割り当てます。ここでは、関数内のすべての変数の定義がプリセットされるため、匿名関数の実行順序は
コードコピーは次のとおりです。
var f =(function(){
var f = 30;
function f(){return 10;}
function f(){return 20;}
return f();
})();
外側の変数fと内側の変数fは同じスコープ(閉鎖)にないため、互いに影響を与えません。関数を過負荷にすることができないため、外側変数f =(function f(){return 20;})();、最終出力は20です。
この記事がみんなのJavaScriptプログラミングに役立つことを願っています。