4

私は最近、これに似たコードを含むJavaScriptビデオチュートリアルを見ました:

(function (){
    var b = 10,
        c = 20, 
        d = 50;

    var e = function(){
        return b + c + d;
    };
    return e();
}());

これは一般的なJSコーディングパターンです。著者は、これはJavascriptコードの手続き型アプローチの例であると述べました。わかりませんが、説明してもらえますか?

4

1 に答える 1

7

上記は自己呼び出し型の無名関数であると言うことから始めましょう:

自己呼び出し無名関数は、作成時に自動的/即時に実行され、名前がないため、匿名と呼ばれます。

上記は私の意見ではかなり悪い例ですが、次の変更を検討してください。

var f = (function (){
    var b = 10,
        c = 20, 
        d = 50;

    var e = function(){
        return b + c + d;
    };
    return e();
}());

​console.log(f);​ 

上記のコードを使用してvar f =、関数の前にを追加しました。これにより、の値がe()内部関数からに返され、他の場所で使用fする値fが得られます。変数b、、、は無名関数の関数スコープ内でc宣言deれているため、改ざんされないようにすることができます。これは、JavaScriptでプライベート変数を実行する方法です。ここで、コード内に場所があったとしましょう。この無名関数を最初に実行し、それらのオカレンスを。に置き換えることができます。コードをさまざまなプロシージャに抽象化するというこのアイデアが、手続き型プログラミングと呼ばれる理由です。10 + 20 + 50f

手続き型プログラミングでは、構造化アプローチを使用してプログラムをコーディングします。プログラムの機能をいくつかの関数またはサブルーチンに分割して、コードの追跡と繰り返しの必要性を減らします。

これは主に、コードを読みやすく、追跡/デバッグしやすくするために使用され、一般的に使用されるコードのチャンクを適切に記述されたコードのスニペットに抽象化できます。 


続きを読む


自己呼び出し関数

自己呼び出し機能の目的

手続き型プログラミング

より手続き型プログラミング

そしてこれはあなたをクロージャに移動させます

于 2012-11-02T14:04:01.800 に答える