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 を変更できますか?