JavaScript クロージャ question_javascript スキル

WBOY
リリース: 2016-05-16 18:12:56
オリジナル
977 人が閲覧しました
コードをコピー コードは次のとおりです:

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 を変更できますか?
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート