Array.prototype.slice.call 유틸리티 공개
Array.prototype.slice.call 메소드는 변환에 중요한 역할을 합니다. 인수 객체를 실제 배열로 변환합니다. 그러나 이 작업의 기본 메커니즘을 이해하는 것은 수수께끼 같은 작업이 될 수 있습니다.
Under the Hood
slice 메서드가 일반적으로 호출되면 다음과 같이 가정합니다(예: , 메소드가 호출되는 객체)는 배열을 나타냅니다. 결과적으로 이 배열을 반복하고 의도한 슬라이싱 작업을 수행합니다.
그러나 호출과 함께 사용하면 인수 개체가 슬라이스 메서드에서 this 개체를 효과적으로 대체합니다. 이러한 대체는 인수 객체가 배열과 유사한 특성을 나타내기 때문에 작동합니다.
배열형 객체 활용
.call() 메서드를 사용하면 함수 내에서 this의 값을 수동으로 할당할 수 있습니다. 이것을 배열과 유사한 객체로 설정함으로써 우리는 본질적으로 Slice가 진짜 배열에서 작동하고 있다고 믿도록 속입니다.
예: 인수 객체 변환
다음을 고려하세요. 함수 인수를 보유하는 배열과 같은 컨테이너 역할을 하는 인수 객체:
function foo() { console.log(arguments); }
출력:
Arguments {0: "John", 1: "Doe", 2: 30}
이 인수 객체를 배열로 변환하려면 슬라이스를 사용합니다.
var slicedArguments = Array.prototype.slice.call(arguments);
이 기술을 사용하면 이전 인수 객체를 기존 배열로 작업할 수 있습니다.
결론
배열 유사 개념을 이해함으로써 객체와 이를 조작하는 .call() 메소드의 능력을 통해 우리는 인수 객체를 배열로 변환하는 Array.prototype.slice.call의 유용성에 대해 더 깊은 이해를 얻게 됩니다.
위 내용은 Array.prototype.slice.call을 사용하여 인수 개체를 배열로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!