var test=(function() { var arr2=[ 1,2 ,3,3]; return function(){ return arr2; })()
Array.prototype.f1= function () { return [] }
Array.prototype.f2= function () { this.length=0; return this;
그런 다음 두 가지 방법으로 호출합니다.
하나: var arr= test(); >console.log(arr.length); 결과는 4
arr.f1(); arr= test()
console.log(arr.length); > 이는 이해하기 쉽습니다.
둘: var arr= test()
console.log(arr.length); ();
arr= test();
console.log(arr.length); 결과는 0입니다. 이런 일이 발생하는 이유는 무엇일까요? 테스트 함수의 클로저에서 arr2를 수정할 수 있나요?