"JavaScript에 대한 최종 가이드"에는 Array.prototype.map
를 구현하는 데 사용되는 함수가 있습니다.
왜 call(null)
而不是直接使用f(a[i], i, a)
를 사용하나요? 이런 식으로 이것은 전반적인 상황을 가리킨다
PHP中文网2017-05-19 10:46:24
여기에 구현된 맵은 두 개의 매개변수로만 호출할 수 있는 map(array, f) 형식임을 알 수 있습니다.
MDN에서 제공하는 함수 프로토타입을 다시 살펴보겠습니다.
const new_array = arr.map(callback[, thisArg])
콜백은 우리가 f라고 부르는 것이므로 마지막 this는 선택 사항이며, 책에서 제공하는 함수는 이 값을 전혀 고려하지 않으므로 이 값이 전달되지 않으면 thisArg 매개 변수가 생략되거나 값이 할당됨 null이거나 정의되지 않은 경우 전역 개체를 가리킵니다.
또한 함수 객체 호출 방법을 사용할 때,
이 함수가 비엄격 모드인 경우 null 및 undef로 지정된 this 값은 자동으로 전역 개체(브라우저의 창 개체)를 가리키며 this 값은 원래 값(숫자, 문자열, 부울 값) 원래 값을 가리키는 자동 래퍼 개체입니다.
간단히 말하면 지도 기능의 속성을 한 문장으로 완벽하게 시뮬레이션하기 위해서~