ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript_javascript スキルにおけるクロージャー原則の分析

JavaScript_javascript スキルにおけるクロージャー原則の分析

WBOY
WBOYオリジナル
2016-05-16 18:32:551157ブラウズ

定義を見てみましょう:
クロージャ
いわゆる「クロージャ」は、多くの変数とこれらの変数にバインドされた環境を持つ式 (通常は関数) を指します。したがって、これらの変数は式の部分でもあります。式。
これは、JavaScript のクロージャがコンテキストを含む関数であることを示しています。つまり、この関数の基礎は、それが置かれている環境にあるということです。これは、線形代数ではどうでしょうか。気持ちは?
別の観点から見ると、クロージャの機能は OO を達成することです。 JavaScript には C のような public、private、protect の属性マークがないため、クラスを構築するのが困難です。 「クラスは動作を伴うデータであり、クロージャはデータを伴う動作です。」 JavaScript では、クラスの定義を関数の定義に置き換え、setter/getter メソッドをクロージャに置き換えます。ライブコードの一部を見てください:

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

関数f1(){
var n=1;
function getter(){
alter(n);
}
return getter; は典型的なクロージャを形成します。最終的に返される関数、つまり先ほど述べた「動作」は、実際には n の値を取得することを目的としているため、クロージャはデータを伴う動作です。
さらに、Ruan Yifeng がクロージャーについて述べたことも非常に簡潔だと思います。「私の理解では、クロージャーは他の関数の内部変数を読み取ることができる関数です。
もう 1 つの学術的な説明:
http://demo.jb51.net/js/javascript_bibao/index.htm

クロージャの定義はすべて部分的なものであるため、学術的な定義からクロージャを本当に理解できることを願っていますJavaScriptの解釈。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。