Javascript クロージャー関数を簡単に学ぶ_JavaScript のヒント

WBOY
リリース: 2016-05-16 15:25:40
オリジナル
910 人が閲覧しました

クロージャ関数とは何ですか?初めてクロージャを学習し始めると、公式の説明から判断すると、比較的概念的なものであるため、おそらく誰にとっても理解するのは難しいでしょう。

しかし、私たちはまだ閉鎖の意味から始めます。
クロージャとは、関数に自由な独立変数があることを意味します。言い換えれば、クロージャで定義された関数は、それが作成された環境を「記憶」することができます。
公式の説明の後、まずは簡単な数え方の例を見てみましょう。

var c = 0;
function count(){
c++;
}
count();// 1
count();// 2
ログイン後にコピー

この例はグローバル変数を使用して実装されていますが、ここで問題が発生します。このとき、変数 c は他のメソッドからも簡単に呼び出され、カウントが無効になる可能性があります。この問題にうまく対処する方法としては、次のようなローカル変数を使用することが考えられます。

function count(){
 var c = 0;
 function add(){
  c++;
 }
 add();
}
count();// c = 1
count();// c = 1
ログイン後にコピー
この方法で作成した後、内部変数は count 関数の作成と実行時にのみ存在するため、関数全体がメモリを持つことができなくなります。クロージャを使用して解決します。クロージャ = 関数 + 環境


function count(){
  var c = 0;
  function add(){
   c++;
  }
  return add;
}
var ct = count();
ct(); // c = 1
ct(); // c = 2
ログイン後にコピー
この時点で、このクロージャーを使用してカウント機能を完成させることができます。ct はクロージャー関数であり、内部環境は外部で操作される内部データです。これには他にどのような機能がありますか?

クロージャを使用してプライベート メソッドをシミュレートします

これは、JAVA のプライベート メソッドまたはプライベート変数に似ており、外部から操作する場合は、操作するためのパブリック メソッドを設定する必要があります。

var person = (function(){
  var _name = "编程的人";
  var age = 20;
  return {
   add:function(){
     age++;
   },
   jian:function(){
     age--;
   },
   getAge:function() {
     return age;
   },
   getName:function(){
     return _name;
   },
   setName: function (name) {
     _name = name;        
   }
  }
})();
person.add();
var age = person.getAge();
console.log(age)
person.setName("编程的人公众号:bianchengderen")
console.log(person.getName())
ログイン後にコピー
ここで説明すると、オブジェクト指向プログラミングに似た感じになると思います。もちろん、JavaScript にはオブジェクト指向プログラミングの特性もあります。これについては後で説明します。
これまで、カウントから内部プライベート化までの例を使用してクロージャを説明してきましたが、もちろん、クロージャには他にも便利な機能があります。


以上がこの記事の全内容です。JavaScript プログラミングを学習する皆さんのお役に立てれば幸いです。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!