Jsの閉パッケージと自己実行関数

1609 ワード

クリックしてリンクを開く
JSでも多重化が必要となり、一般的な操作をカプセル化することがよくあります.現在見られている多くのJSライブラリ、例えばJQueryは非常に典型的ですが、JSに多重化可能なものを書くにはどうすればいいのでしょうか.JSではこのような言い方がありますが、私はこのものに抵抗していますが、存在は合理的です.JSのクラスは関数によってシミュレーションされています.つまり、JSの関数は二重の役割を持っています.newキーワードで関数をクラスと見なしています.newを使わないのは、一般的な関数です.クラスは1つのデータ型であることを知っていて、このデータ型は属性と方法(関数)から構成されて、もし関数が属性だけで、方法がなければ、このようなクラスは、一般的に単純に1つのデータとして表現して、いくつかの方法を増加して、クラスの機能は質的に変化します.JSでは、関数をクラスとして表すことができ、クラスにメソッドがある以上、JSで関数の内部に関数を新たに定義するのは、怪しむに足らない.JSの中で最も強力な内容は、原型を除いて、閉パッケージだと思います.ここでは閉パッケージについて議論します.閉パッケージは実は1つの関数の内部に新しい関数を定義し、実行するときに、この関数を返したり、オブジェクトを返したりします.次は簡単な閉パッケージです.
 var MathTest = function (x, y) {

        var x = x;
        var y = y;

      var add = function () {

            return x + y;

        }

        return add;

    }
 var x = MathTest(3, 4);

        alert(x());

これは複雑ですが、ここでは別の知識、自己実行関数、匿名関数に関連します.匿名関数とは名前のない関数で、形式は以下の通りです:function(){}名前がない以上、どのように呼び出すか:var b=function(){}b()は匿名関数を変数に支払うことができて、この変数は今この関数の名前になっていますが、覚えておいてください.これは名前ではありません.私はただそう呼んでいます.もし不適切だと思ったら、bは現在この匿名関数の代表であり,使用時にbを用いることは右の関数を用いることに等しいと考えられる.このような方式に加えて、自己実行関数もあり、形式は以下の通りである:(function(){//コード})();自己実行関数は私たちの上の2つのステップの結合に相当します:var b=function(){}b()自己実行関数はとても役に立ち、それを使ってネーミングスペースを作成することができます.自分のすべてのコードをこの特殊な関数パッケージに書くだけで、使用するときはこの奇妙な関数だけでいいです.偉大なJQueryはこの奇妙な関数によって$のオブジェクトを作成し、この匿名関数では、自分のネーミングスペースを定義したり、自分のオブジェクトを返したりすることがよくあります.上のImgオブジェクトには回転画像の操作が含まれています.この操作では、多くの匿名関数で定義されている他の方法が呼び出されます.これらの方法はすべてRotateのためにサービスされています.では、後で自分が服用できる操作を書くときは、このような方法で行うことができます.