bind ()를 사용하는 가장 쉬운 방법은 ()을 바인드 ()로 사용하는 방법에 관계없이 함수가 동일한 값을 갖도록 함수를 생성하는 것입니다. 단순히 이것의 값을 설정하고 인수를 전달하는 Call and Apply와는 달리, 전달 된 모든 인수를 bind () 메소드 (첫 번째 매개 변수의 매개 변수)에 바인딩합니다.
이 기능의 예는 "JS 권위 가이드"의 원본 텍스트를 참조하십시오.
var sum = function (x, y) {return x + y}; var succ = sum.bind (null, 1); //이 점이 NULL로두면 후속 실제 매개 변수가 바운드 함수 SumSucc (2)로 전달됩니다. // => 3 : Sum 함수에서 1이 X에 바인딩되는 것을 볼 수 있습니다.둘째, bind () 메소드에 의해 반환 된 함수의 길이는 원래 함수의 형상 매개 변수 금액을 뺀 원래 함수의 형태 매개 변수를 뺀 것과 동일합니다. 실제 매개 변수는 바인드로 전달 된 실제 매개 변수가 원래 함수의 공식 매개 변수로 바인딩되기 때문에 다음과 같습니다.
function func (a, b, c, d) {...} // func의 길이는 4var After = func.bind (null, 1,2)입니다. // 두 개의 실제 매개 변수 (1,2)가 여기에 입력되어 func 함수 bconsole.log (after.length)의 a에 바인딩됩니다. // 후 길이는 2입니다셋째, bind ()에 의해 반환 된 함수가 생성자로 사용되면 BIND ()로 전달 된 경우 모든 실제 계정이 원래 함수로 전달됩니다. 이것은 매우 추상적입니다. 예를 들어:
기능 원본 (x) {this.a = 1; this.b = function () {return this.a + x}} var obj = {a = 10} var newobj = new (Original.bind (obj, 2)); // 실제 매개 변수 2console.log (newobj.a); // output 1, 반환 된 함수가 생성자 콘솔로 사용될 때 OBJ (이 값)가 무시되었음을 나타냅니다. // 출력 3, 전달 된 매개 변수 2가 원래 함수 원본으로 전달되었음을 나타냅니다.위의 것은 ES5에서 BIND 방법의 특성 이며이 기술을 기능적 카레링 이라고도합니다. 이 기술은 여러 매개 변수가있는 함수를 하나의 매개 변수 만있는 함수로 바꿉니다. 바인드 방법은 JS 에서이 기술의 실습입니다.
JS에서 바인드 방법 및 기능 카레에 대한이 간단한 논의는 내가 공유하는 모든 내용입니다. 나는 그것이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.