인터뷰 질문: JavaScript의 호출 메소드
제목:
function fn(a,b){ console.log(this); console.log(a); console.log(a+b); } fn.call(1); fn.call.call(fn); fn.call.call.call(fn,1,2); fn.call.call.call.call(fn,1,2,3);
답변:
fn.call(1); // 1,undefine,NaN
fn.call.call(fn) // fn,undefine,NaN
fn.call.call.( fn,1,2); // 1,2,NaN
fn.call.call.call.call(fn,1,2,3); // 1,2,5
심층적인 문제 해결 아이디어 :
fn .call(1); call의 첫 번째 매개변수는 호출 전 함수의 this 키워드를 변경하므로 그 뒤에 매개변수가 없으므로 1을 출력하므로 a와 b는 정의되지 않으며 추가 결과는 NaN입니다.
fn.call.call(fn) ;이 부분이 어려운 부분인데 이해하기 쉽네요! fn.call은 Function.prototype에서 호출 메소드를 찾습니다(이것은 함수이자 함수 클래스의 인스턴스이기도 합니다. 호출/적용 및 기타 메소드를 계속 호출할 수도 있습니다). fn.call을 함수 A로 간주할 수 있습니다. 다음 단계는 A.call(fn)과 동일합니다. 여기서 호출 메서드를 실행하고 A의 키워드 this를 함수 fn으로 변경한 다음 함수 A(fn.call)를 실행합니다. fn, 1,2); 이전 글의 프로토타입 체인 메소드를 통해 fn.call.call.call을 A(fn.call.call).call 실행으로 간주할 수 있습니다. 이때 괄호 안의 매개변수는 fn입니다. 함수로 실행되었으므로 A.call(1,2) 실행이 됩니다! 1은 호출 전 함수에서 이를 변경하기 위한 첫 번째 매개변수로 사용되며, 다음 매개변수는 함수의 형식 매개변수에 실제 매개변수로 전달됩니다!
fn.call.call.call.call(fn,1,2,3); 이전 원칙과 동일합니다!
일반 요약:
잘 이해되지 않으면 다음 일반 팁도 기억할 수 있습니다.
두 개 이상의 호출이 발생하면 첫 번째 매개 변수가 실행되어야 하며 첫 번째 매개 변수는 함수여야 합니다. 두 개의 매개변수는 첫 번째 매개변수에서 이를 변경하는 것입니다.
세 번째 이후의 매개변수는 첫 번째 매개변수에 실제 매개변수로 전달됩니다.
위 내용은 인터뷰 질문: JavaScript의 호출 메소드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











JavaScript 문자열 교체 방법 및 FAQ에 대한 자세한 설명 이 기사는 JavaScript에서 문자열 문자를 대체하는 두 가지 방법 인 내부 JavaScript 코드와 웹 페이지의 내부 HTML을 탐색합니다. JavaScript 코드 내부의 문자열을 교체하십시오 가장 직접적인 방법은 대체 () 메소드를 사용하는 것입니다. str = str.replace ( "find", "replace"); 이 메소드는 첫 번째 일치 만 대체합니다. 모든 경기를 교체하려면 정규 표현식을 사용하고 전역 플래그 g를 추가하십시오. str = str.replace (/fi

기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

이 기사는 스크립트의 성능을 크게 향상시키기위한 10 가지 간단한 단계를 간략하게 설명합니다. 이러한 기술은 간단하고 모든 기술 수준에 적용 할 수 있습니다. 계속 업데이트 : Vite와 같은 번들과 함께 NPM과 같은 패키지 관리자를 활용하여

속편은 약속 기반 Node.js ORM입니다. PostgreSQL, MySQL, MariaDB, Sqlite 및 MSSQL과 함께 사용할 수 있습니다. 이 튜토리얼에서는 웹 앱 사용자를위한 인증을 구현할 것입니다. 그리고 우리는 인기 인증 중간 인 여권을 사용할 것입니다

이 기사에서는 jQuery 라이브러리를 사용하여 간단한 사진 회전 목마를 만들도록 안내합니다. jQuery를 기반으로 구축 된 BXSLIDER 라이브러리를 사용하고 회전 목마를 설정하기위한 많은 구성 옵션을 제공합니다. 요즘 그림 회전 목마는 웹 사이트에서 필수 기능이되었습니다. 한 사진은 천 단어보다 낫습니다! 그림 회전 목마를 사용하기로 결정한 후 다음 질문은 그것을 만드는 방법입니다. 먼저 고품질 고해상도 사진을 수집해야합니다. 다음으로 HTML과 일부 JavaScript 코드를 사용하여 사진 회전 목마를 만들어야합니다. 웹에는 다양한 방식으로 회전 목마를 만드는 데 도움이되는 라이브러리가 많이 있습니다. 오픈 소스 BXSLIDER 라이브러리를 사용할 것입니다. BXSLIDER 라이브러리는 반응 형 디자인을 지원 하므로이 라이브러리로 제작 된 회전 목마는
