>웹 프론트엔드 >JS 튜토리얼 >자바스크립트에서 바인드 사용법은 무엇인가요?

자바스크립트에서 바인드 사용법은 무엇인가요?

藏色散人
藏色散人원래의
2021-09-03 16:29:217275검색

JavaScript의 바인드 메소드는 새로운 함수를 생성하는 데 사용됩니다. 사용법 구문은 "function.bind(thisArg[, arg1[, arg2[, ...]]])"입니다. 여기서 thisArg 매개변수는 바인딩된 경우를 나타냅니다. 함수가 호출됩니다. 이 매개변수로 대상 함수에 전달된 값입니다.

자바스크립트에서 바인드 사용법은 무엇인가요?

이 문서의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript에서 바인드의 사용법은 무엇인가요?

Function.prototype.bind()

bind() 메소드는 새로운 함수를 생성합니다. 나머지 매개변수는 호출 시 사용할 새 함수의 매개변수로 사용됩니다.

Syntax

function.bind(thisArg[, arg1[, arg2[, ...]]])

매개변수 thisArg:

바운드 함수 호출 시 this 매개변수로 대상 함수에 전달되는 값입니다. new 연산자를 사용하여 바인딩된 함수를 생성하는 경우 이 값은 무시됩니다. setTimeout(콜백으로 제공됨)에서 함수를 생성하기 위해 바인드를 사용할 때 thisArg로 전달된 모든 기본 값은 객체로 변환됩니다. 바인딩 함수의 인수 목록이 비어 있거나 thisArg가 null이거나 정의되지 않은 경우 실행 범위의 this는 새 함수의 thisArg로 처리됩니다.

매개변수 arg1, arg2, ...:

대상 함수가 호출될 때 바인딩된 함수의 매개변수 목록에 미리 설정되는 매개변수입니다.

반환 값:

지정된 이 값과 초기 매개변수를 사용하여 원래 함수의 복사본을 반환합니다.

설명:

bind() 함수는 새로운 바인딩 함수(BF)를 생성합니다. 바인딩된 함수는 원래 함수 개체를 래핑하는 이국적인 함수 개체(ECMAScript 2015 용어)입니다. 바인딩된 함수를 호출하면 일반적으로 래퍼 함수가 실행됩니다.

Bound 함수에는 다음과 같은 내부 속성이 있습니다.

[[BoundTargetFunction]] - 래핑된 함수 객체

[[BoundThis]] - 래핑된 함수를 호출할 때 항상 this 값으로 전달되는 값입니다.

[[BoundArguments]] - 목록, 래퍼 함수에 대한 모든 호출은 먼저 인수 목록을 목록 요소로 채웁니다.

[[Call]] - 이 개체와 관련된 코드를 실행합니다. 함수 호출 표현식을 통해 호출됩니다. 내부 메소드의 매개변수는 this 값과 호출 표현식을 통해 함수에 전달된 매개변수를 포함하는 목록입니다.

바운드 함수가 호출되면 Call(boundThis, args)와 같이 [[BoundTargetFunction]]에서 내부 메서드 [[Call]]을 호출합니다. 여기서boundThis는 [[BoundThis]]이고 args는 [[BoundArguments]]와 함수 호출을 통해 전달된 인수 목록입니다.

바운드 함수는 new 연산자를 사용하여 생성할 수도 있으며, 이는 마치 대상 함수가 생성된 것처럼 동작합니다. 제공된 이 값은 무시되지만 전달 매개변수는 여전히 모의 함수에 제공됩니다.

추천 학습: "JavaScript 기본 튜토리얼"

위 내용은 자바스크립트에서 바인드 사용법은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.