>  기사  >  웹 프론트엔드  >  Array.prototype.slice.call을 사용하여 인수 개체를 배열로 변환하는 방법은 무엇입니까?

Array.prototype.slice.call을 사용하여 인수 개체를 배열로 변환하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-21 21:53:30718검색

How to Use Array.prototype.slice.call to Convert Arguments Objects into Arrays?

Array.prototype.slice.call 유틸리티 공개

Array.prototype.slice.call 메소드는 변환에 중요한 역할을 합니다. 인수 객체를 실제 배열로 변환합니다. 그러나 이 작업의 기본 메커니즘을 이해하는 것은 수수께끼 같은 작업이 될 수 있습니다.

Under the Hood

slice 메서드가 일반적으로 호출되면 다음과 같이 가정합니다(예: , 메소드가 호출되는 객체)는 배열을 나타냅니다. 결과적으로 이 배열을 반복하고 의도한 슬라이싱 작업을 수행합니다.

그러나 호출과 함께 사용하면 인수 개체가 슬라이스 메서드에서 this 개체를 효과적으로 대체합니다. 이러한 대체는 인수 객체가 배열과 유사한 특성을 나타내기 때문에 작동합니다.

  • 숫자 .length 속성을 보유합니다.
  • 숫자 인덱스에 속성을 포함합니다.

배열형 객체 활용

.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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.