>웹 프론트엔드 >JS 튜토리얼 >javascript_javascript 팁에서 수신자를 지정하기 위해 바인드를 사용하는 방법

javascript_javascript 팁에서 수신자를 지정하기 위해 바인드를 사용하는 방법

WBOY
WBOY원래의
2016-05-16 16:50:141119검색
코드 복사 코드는 다음과 같습니다.

var json = {
jArray: [],
jPush: function (c) {
this.jArray.push(c);
}
}
var examplep = ["123", "~", "456"];

ES5에서 제공하는 forEach 루프 예제를 사용하여 json의 jArray에 추가하세요.
코드 복사 코드는 다음과 같습니다.

examp.forEach(json.jPush)

이때 오류가 보고됩니다:
javascript_javascript 팁에서 수신자를 지정하기 위해 바인드를 사용하는 방법

이 생성됩니다. 이 오류가 발생하는 이유는 json.jPush 메서드의 이것이 json 개체가 아니라 창을 가리키기 때문입니다. 이 문제를 해결하는 방법은 이에 적합한 사람을 찾는 것입니다. .
다행히 forEach()는 객체를 지정하는 데 특별히 사용되는 매개변수를 제공합니다.
코드 복사 코드는 다음과 같습니다.

examp .forEach(json.jPush,json);
alert(json.jArray);//결과는 123~456입니다.

또 다른 방법이 있습니다:
코드 복사 코드는 다음과 같습니다.

Examp.forEach(function (c) {
json.jPush( c);
})
alert(json.jArray);//123~456

당신 바인딩을 사용할 수도 있습니다.
코드 복사 코드는 다음과 같습니다.

examp.forEach(json .jPush.bind(json));
alert(json.jArray) ;

bind는 함수를 수정하는 대신 새 함수를 생성합니다. 그러나 그 수신자는 우리가 제공한 객체이고 원래 함수는 변경되지 않은 상태로 유지됩니다.
이것은 함수나 메소드를 공유할 때 바인딩 메소드를 사용하는 것이 매우 안전하다는 것을 의미합니다. 공유 메서드가 수정되지 않을까 걱정할 필요가 없습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.