JavaScript 匿名関数インスタンスの分析_JavaScript スキル

WBOY
リリース: 2016-05-16 16:30:55
オリジナル
1637 人が閲覧しました

この記事の例では、JavaScript 匿名関数の使用について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。

概要:

この記事では、JavaScript の最も基本的で重要な関数について説明します。この記事を書いたのは、インタビュー中に質問されたためであり、復習の意味もあります。

まず例を挙げてみましょう。理解できたということは、この記事の内容をすでに理解しているということです。

コードをコピー コードは次のとおりです。
var f = (function() {

関数 f() {return 10;}

return f();

関数 f() {return 20;}

var f = 30;

})();

console.log(f);

関数は次のように高度な JavaScript プログラミングで記述されます。関数は任意の数のステートメントをカプセル化でき、いつでもどこでも呼び出して実行できます。以前に厳密モードを紹介しましたが、厳密モードにはいくつかの機能制限があります:

① 関数に eval または argument という名前を付けることはできません
② パラメータに eval や argument
という名前を付けることはできません ③ 同じ名前の名前付きパラメータが 2 つ存在することはできません

上記の状況が発生した場合、構文エラーが発生し、コードは実行できません。

関数定義

関数定義は 3 種類に分かれます

1. コンストラクター

コードをコピー コードは次のとおりです:
var fun = new Funciton();

2. 共通の定義

コードをコピー コードは次のとおりです。
function fun() {}

3. 機能の定義

コードをコピー コードは次のとおりです:
var fun = function() {};

関数 fun は次の 3 つの方法で定義できます。

パラメータ

関数は、渡されるパラメータの数や、パラメータがどのようなデータ型で渡されるかを気にしません。定義した関数が 2 つのパラメーターしか受け取らない場合でも、この関数を呼び出すときに必ずしも 2 つのパラメーターを渡す必要はありません。 1 つ、3 つのパラメータを渡すことも、まったくパラメータを渡すこともできません。その理由は、パラメータが内部的に配列で表されるためです。関数本体では、
などの引数オブ​​ジェクトを介してパラメーター配列にアクセスできます。

コードをコピー コードは次のとおりです。
function SayHi() {

alert("Hello " 引数[0] "," 引数[1]);

}

引数オブジェクトの length プロパティにアクセスして、パラメータの数を確認します。関数の長さは、関数のパラメーターの数を返します。

注: すべてのパラメータは値によって渡され、パラメータを参照によって渡すことはできません。

関数はオーバーロードできず、書き換えのみ可能です

同じ名前の 2 つの関数が定義されている場合、その名前は最後に定義された関数にのみ属します。例:

コードをコピーします コードは次のとおりです:

関数 add(num) {

数値 100 を返します;

}

関数 add(num) {

数値 200 を返します;

}

var result = add(100) //300

注: この関数は return ステートメントの実行直後に停止して終了します。

関数の種類

関数は、名前付き関数と匿名関数の 2 つのタイプに分類されます。たとえば、次のような有名な関数

コードをコピー コードは次のとおりです。
function fun() {

}

呼び出された場合は、fun() のみが必要です。

匿名関数には、名前が示すように、関数名がありません。たとえば

関数() {}

関数呼び出しは関数名を通じて呼び出されます。匿名関数を呼び出すにはどうすればよいですか? 1 つは、匿名関数を変数に代入し、その変数を関数名として使用する方法です。もう1つは、()を使って以下の3つのメソッドを呼び出す方法です

1. (関数() {return;}());

2. (関数() {return;})();

3. function() {return;}();

例:

コードをコピーします コードは次のとおりです:

(関数(x, y) {

アラート(x y);

})(2,3);

//alert(5)


2 と 3 はパラメータとして x と y に渡されます

一番上の例について話しましょう。この例にはクロージャが含まれています。これについては後で説明します。

最初に変数 f を定義し、それを匿名関数に割り当てます。ここで、関数内のすべての変数の定義が先頭に追加されるため、匿名関数内の実行順序は
であることに注意してください。

コードをコピー コードは次のとおりです:

var f = (function() {

var f = 30;

関数 f() {return 10;}

関数 f() {return 20;}

return f();

})();


外側の変数 f と内側の変数 f は同じスコープ (クロージャ) にないため、相互に影響を与えません。この関数は外部変数 f=(function f() {return 20;})(); をオーバーロードできないため、最終出力は 20 になります。

この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート