첫 번째 방법은 잘 알려진 concat이지만 이 방법의 한 가지 특징은 기존 배열을 변경하지 않고 연결된 배열의 복사본만 반환한다는 것입니다.
단지 기존 배열에 새 배열의 요소를 추가하려면 이를 다시 할당해야 하는데 이는 실제로 약간의 리소스 낭비입니다. 간단히 말해서 새로 생성된 배열에 새 메모리 공간을 할당하고 arr1을 이 새 메모리 주소로 리디렉션해야 합니다. 그렇다면 메모리의 원래 배열은 어떻습니까? 헤헤, 브라우저가 이를 올바르게 재활용할 수 있는지 여부에 따라 달라집니다.
다음 예:
var arr1 = [1,2,3];
var arr1 = arr1.concat([4,5]);
이 리소스를 피할 수 있는 좋은 방법이 있습니까? 소비?
여기서 Javascript의 기본 적용 메소드를 사용하여 이를 달성할 수 있습니다. 먼저 다음 코드를 살펴보세요.
var arr1= [1,2,3]
arr1.push.apply(arr1,[4,5]); 🎜>
끝났습니다. 이 메서드는 적용 메서드의 특성(두 번째 매개 변수는 여러 배열 유형)을 교묘하게 사용하여 푸시 메서드를 해방합니다. 푸시 메서드는 자체에서 여러 값만 전달할 수 있습니다. 위 코드는 실제로
arr1.push(4,5) ;
이런 식으로 arr1은 여전히 arr1과 동일하지만 리디렉션이나 불필요한 메모리 오버플로 없이 메모리가 다시 작성되었습니다.