ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript クロージャ question_javascript スキル

JavaScript クロージャ question_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 18:12:561021ブラウズ
コードをコピー コードは次のとおりです:

var test=(function() { var arr2=[ 1,2 ,3,3]; return function(){ return arr2 }; })()
Array.prototype.f1= function () { return [] } function () { this.length=0; return this; }

次に、次の 2 つの方法で呼び出します: var arr= test(); >console.log(arr.length); 結果は 4
arr.f1();
console.log(arr.length); > これは理解するのが簡単です;
2: var arr= test();

console.log(arr.length); 結果は 4
arr.f2 ();
arr= test();
console.log(arr.length); 結果は 0
なぜこれが起こったのかわかりません。テスト関数のクロージャー内の arr2 を変更できますか?
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。