今回はJavaScriptの基礎知識まとめ(10) クロージャと即時実行関数 実践事例を見ていきましょう。
//例子function a() { function b(){ var bbb = 234; console.log(aaa) } var aaa = 123; return b; }var glob = 100;var demo = a(); demo();
内部関数は外部に保存され、クロージャを形成する必要があります
function a (){ var num = 100; function b(){ num ++; console.log(num); } return b; }var demo = a(); demo();//打印101demo();//打印102
グローバル変数の汚染を防ぐためのモジュラー開発
1. 上記のアキュムレータの例が書かれています2. キャッシュ(記憶構造)ができるfunction test(){ var num = 100; function a(){ num ++; console.log(num); }; function b(){ num --; console.log(num); }; return [a,b] }var myArr = test(); myArr[0]();//打印101myArr[1]();//打印100 function eater(){ var food = ""; var obj ={ eat : function(){ console.log("i am eating" + food) }, push : function (myFood){ food = myFood; } } return obj; }var eater1 = eater(); eater1.push('banana'); eater1.eat();//打印出 i am eating banana
オブジェクトを書き終えた後に説明します。モジュール開発にも同じことが当てはまります
関数をすぐに実行してくださいこのタイプの関数は一度に宣言されていません処刑後に釈放される。初期化作業に適しています。function a(){ }function b(){ }
(function (aaa,bbb,ccc){ var a = 234; var b = 123; var c = a+b; console.log(c) return c}(1,2,3)) 执行完立即被销毁 // 怎么去接收他var num = (function (aaa,bbb,ccc){ var a = 234; var b = 123; var c = a+b; console.log(c) return c}(1,2,3)) 立即执行函数有两种写法 //第一种(function(){}());//w3c 建议第一种//第二种(function(){})(); 扩展 只有表达式才可以被执行符号执行 var test = function (){}()//也可以被执行+ function test(){}()//也可以被执行 以此类推- !号也可以function test(){ console.log(a+b+c+d)}(1,2,3,4)//不执行也不报错
JavaScriptの基礎知識まとめ (9) スコープとスコープチェーンの洗練
JavaScriptの基礎知識まとめ (8) プリコンパイルの実行処理
以上がJavaScriptの基礎知識まとめ(10) クロージャと即時実行関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。