자바스크립트 콜백 함수의 매개변수 유래 이해
자바스크립트에서는 특정 이벤트가 발생할 때까지 실행을 연기하기 위해 콜백 함수를 자주 사용합니다. 그러나 콜백 함수 변수의 소스는 수수께끼로 보일 수 있습니다. 다음 Node.js 코드를 예로 들어 콜백 함수와 해당 매개변수 출처의 구조를 자세히 살펴보겠습니다.
router.get('/', function(req, res){ res.render('index', {}); });
'req' 및 'res' 변수는 어떻게 채워지나요?
우리가 가정하는 것과는 달리 'req'와 'res'는 콜백 함수 자체 내에 정의되어 있지 않습니다. 대신 이를 호출하는 함수(이 경우에는 'router.get')에서 나옵니다.
콜백 함수와 함께 'router.get'이 호출되면 해당 함수에 두 개의 인수를 전달합니다.
호출 시간 및 매개변수 출처
콜백 함수가 정의된 즉시 실행되지 않습니다. 대신 나중에, 일반적으로 연관된 이벤트가 발생할 때 호출됩니다. 이 경우 '/' 엔드포인트에 HTTP GET 요청이 있을 때 콜백 함수가 호출됩니다.
호출 시 'router.get'에 전달한 함수가 'req'와 함께 실행됩니다. 함수 자체에서 제공하는 'res' 매개변수입니다. 즉, 'req' 및 'res' 변수는 콜백 함수 범위 내에 존재하지 않고 오히려 함수 호출 시 인수로 전달됩니다.
'res' 선언이 없는 단순화된 예
이 매개변수 전달이 어떻게 작동하는지 더 자세히 설명하기 위해 'res'를 명시적으로 선언하지 않고 'res.render'를 호출하는 방법을 보여주는 간단한 예가 있습니다.
// Define a function to handle HTTP GET requests function handleGetRequest(req, res) { // Render the 'index' view using the data provided by the request res.render('index', {}); } // Register the handler with the router router.get('/', handleGetRequest);
이 예에서는 HTTP GET 요청을 처리하는 별도의 함수('handleGetRequest')를 만들었습니다. 이 함수는 'req' 및 'res' 개체를 매개변수로 사용합니다. HTTP GET 요청이 '/' 끝점에 만들어지면 라우터는 'handleGetRequest' 함수를 호출하고 'req' 및 'res' 개체를 전달합니다. 그런 다음 함수는 이러한 개체를 사용하여 요청 정보에 액세스하고 HTTP 응답을 보낼 수 있습니다.
이 접근 방식은 콜백 함수 내에서 'res'를 명시적으로 선언할 필요가 없음을 보여줍니다. 함수가 호출될 때 인수를 입력합니다.
위 내용은 ## JavaScript 콜백 함수에서 매개변수는 어디에서 오나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!