어떻게 그 변환 document.querySelectorAll('a')
A로부터
NodeList
규칙적인 배열에?
이것은 우리가 가진 코드입니다.
[].slice.call(document.querySelectorAll('a'), 0)
먼저 해체하자
[] // Array object
.slice // Accessing the function 'slice' present in the prototype of Array
.call // Accessing the function 'call' present in the prototype of function object(slice)
(document.querySelectorAll('a'),0)
// 'call' can have arguments like, (thisArg, arg1,arg2...n).
// So here we are passing the 'thisArg' as an array like object,
// that is a 'nodeList'. It will be served as 'this' object inside of slice function.
// And finally setting 'start' argument of slice as '0' and leaving the 'end'
// argument as 'undefined'
1 단계 : call
기능 실행
- 내부
call
이외는 thisArg
, 인수의 나머지는 인수 목록에 추가됩니다.
- 이제 함수
slice
는 (객체에서 온 배열과 같은) this
값을
인수 목록과 함께 바인딩하여 호출됩니다 . 즉 , 포함하는 인수thisArg
document.querySelector
start
0
2 단계 : 2 slice
내부에서 호출 된 함수 실행call
추신 시나리오에 대한 이해를 돕기 위해 문맥에 필요한 일부 단계는 호출 및 슬라이스 의 원래 알고리즘에서 무시되었습니다 .
Array.prototype.slice.call(document.querySelectorAll('a'));
작성한 코드 덩어리를 작성하는 적절한 방법입니다.