첫 번째 방법은 잘 알려진 동의이지만,이 메소드가 기존 배열을 변경하지는 않지만 연결된 배열의 사본 만 반환한다는 확실성이 있습니다.
기존 배열에 새 배열의 요소를 추가하려면 실제로 자원이 약간 낭비되는 것을 재 할당해야합니다. 간단히 말해서, 새로 생성 된 배열 및 포인트 ARR1에 대한 새로운 메모리 공간을 다시 메모리의 배열은 어떻습니까?
다음 예에서 볼 수 있듯이 :
코드 사본은 다음과 같습니다.
var arr1 = [1,2,3];
var arr1 = arr1.concat ([4,5]);
그렇다면이 자원 소비를 피할 수있는 좋은 방법이 있습니까?
여기에서 JavaScript의 Native Apply Method를 사용하여 다음 코드를 살펴보십시오.
코드 사본은 다음과 같습니다.
var arr1 = [1,2,3];
arr1.push.apply (arr1, [4,5]);
이 작업은 완료됩니다.이 방법은 적용 메소드의 특성을 영리하게 사용하고 (두 번째 매개 변수는 여러 배열 유형입니다) 푸시 메소드는 자체적으로 전달할 수있는 것에서 전달 될 수있는 것으로 변경되었습니다. 배열
코드 사본은 다음과 같습니다.
arr1.push (4,5);
이러한 방식으로 ARR1은 여전히 동일한 ARR1이지만 리디렉션 또는 불필요한 메모리 오버플로없이 메모리가 다시 작성되었습니다.