JavaScript를 처음 접하는 모든 학생은 기능 매개 변수가 통과하는 것에 대해 매우 혼란 스러울 것이라고 생각합니다. 그 이유는 구문이 너무 이상하기 때문입니다. 함수를 정의합니다.
예를 들어
함수 테스트 (이름, msg) {return 'hello' + name + msg;}전화 할 때 어떻게 부르나요? ( 'Eric'), 테스트 ( 'Eric', 'JavaScript에 오신 것을 환영합니다')를 테스트하거나 원하는만큼 매개 변수를 전달할 수 있으며 유형이 임의적입니다. 이것이 얼마나 좋은 것입니다. C ++/C# 또는 Java를 공부 한 학생들은 기능 과부하를 생각할 수 있습니다. 그러나 내가 말하고 싶은 것은 JavaScript에 기능 과부하가 없다는 것입니다. 동일한 이름으로 두 함수를 정의하면 먼저 정의 된 함수는 이후의 정의에 의해 덮어 씁니다. 즉, 원하는 결과는 나중에 정의 된 함수에서만 얻을 수 있음을 의미합니다.
좋아, 요점으로 돌아가 봅시다. JavaScript 함수가 왜 그렇게 부담없이 전달 될 수 있습니까? 먼저 전달 된 모든 매개 변수가 저장되는 위치를 살펴 보겠습니다. 실제로, 내부 구현에서 모든 전달 된 매개 변수는 배열에 존재합니다. 함수는 항상이 배열을 수신하며 배열에 포함 된 매개 변수에 신경 쓰지 않습니다. 이제 이해하기 쉽습니다. 우리는 함수를 정의했습니다. 호출 할 때 매개 변수는 마음대로 전달 될 수 있습니다. 통과하는만큼 배열에 추가됩니다. 당신이 그것을 전달하지 않으면, 모든 공식 매개 변수는 '정의되지 않은'것입니다. 구문 오류는 없지만 의미론 측면에서 말하기는 어렵습니다.
좋아, 이번이 처음으로 블로그를 작성합니다. 나는 재능이 없기 때문에 당신을 비웃고 있습니다. 이 블로그 게시물이 당신을 조금 도움이되기를 바랍니다. . . .
사랑해, 얘들 아!