Array.prototype.push가 더 유용한 데이터 대신 새로운 길이를 반환하는 이유
ECMA-262, 3판, Array에 도입되었습니다. 프로토타입.push는 업데이트된 배열 길이를 나타내는 숫자를 일관되게 반환했습니다. 그러나 추가된 항목에 대한 참조나 수정된 배열 자체와 같이 잠재적으로 더 가치 있는 정보를 제공하는 대신 왜 이런 방식으로 설계했는지에 대한 의문이 생깁니다.
역사적 맥락
이 디자인 결정의 이유를 이해하기 위해 푸시의 역사와 Perl의 해당 부분을 조사합니다. 1997년 Netscape 4의 JS1.2에 추가된 이 메소드는 Perl 대응 항목에서 영감을 받았습니다.
처음에 JS1.2의 push는 추가된 마지막 요소를 반환하여 Perl 4를 준수했습니다. 그러나 JS1.3에서는 새로운 배열 길이를 반환하는 Perl 5의 규칙에 맞춰 이동했습니다. 이 변경 사항은 JS 버전에 따라 Perl 4와 Perl 5 동작을 구별하는 jsarray.c 소스 코드에 반영되었습니다.
배열 길이를 반환하는 이유
이러한 역사적 통찰은 배열의 새로운 길이를 반환하기로 한 결정이 JavaScript의 초기 개발에 영향을 미친 Perl 5 표준에 맞춰 조정되었음을 시사합니다. 또한 길이를 반환하는 것은 잠재적인 혼란이나 모호성을 유발하지 않고 푸시 작업의 결과를 나타내는 명확하고 일관된 방법으로 간주되었을 수 있습니다.
대체 고려 사항
추가된 항목이나 수정된 배열 자체에 대한 참조를 반환하는 것은 장점이 있습니다. 새로 추가된 요소에 대한 직접 액세스를 제공하거나 연결된 작업을 허용할 수 있습니다. 그러나 이러한 대안에는 잠재적인 단점도 있습니다.
결론
Array.prototype.push 새로운 배열 길이에 대한 메소드의 반환 값은 가장 광범위한 정보를 제공하지 않을 수 있지만 해당 디자인은 Perl의 규칙과 일관되게 유지되며 작업 결과에 대한 명확한 표시를 제공합니다. 대체 접근 방식에는 장점도 있지만 초기 JavaScript 선택에 영향을 미쳤을 수 있는 잠재적인 단점도 있습니다.
위 내용은 Array.prototype.push가 더 많은 정보를 제공하는 데이터 대신 업데이트된 배열 길이를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!