ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript学習_JavaScriptスキルのクロージャ分析

JavaScript学習_JavaScriptスキルのクロージャ分析

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

ECMAScript では、関数宣言で宣言され、関数の外で見られるすべての変数は、関数内の 最終値 にアクセスできます。

クロージャ関数は変数の最終値にのみアクセスできます!!!

例:

function fnTest(arr) {
for (var i=0;i < arr.length;i ) {
arr[i]=function () {alert(i " | " arr[i]); };
}
}
var arr = [0,1,2,3];
fnTest(arr);
for (var i=0; i < arr.length;i ) {
arr[i](); //常に 4 が出力され、未定義が存在します関数の終了後、i の値は 4 になるため、アクセスされる値は次のようになります。 4 つだけ

//結果は 4 回連続して表示されます "4|unknown"
}

クロージャ内のクロージャの外側にある変数値にアクセスできるだけでなく、その値を設定することもできます

例:

function fnTest() {
var a=" June";
return {
set:function (param) {a = param},
get:function () {return a}
};
}
var obj = fnTest();
alert(obj.get());//6 月のポップアップ

obj.set(586);
alert(obj.get());//ポップアップ 586

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。