코드 사본은 다음과 같습니다.
var json = {
Jarray : [],
JPUSH : 기능 (c) {
this.jarray.push (c);
}
}
var test = [ "123", "~", "456"];
ES5가 제공 한 foreach를 사용하여 예제를 반복하고 JSON의 Jarray에 추가하십시오.
코드 사본은 다음과 같습니다.
test.foreach (json.jpush);
현재 오류 가보고됩니다.
이 오류의 이유는 JSON.JPUSH 메소드 의이 사실이 JSON 객체가 아니라 창을 가리키기 때문입니다. 이 문제에 대한 해결책은 이것에 적합한 사람을 찾는 것입니다.
다행스럽게도 oreach ()는 개체를 지정하기위한 매개 변수를 제공합니다. 코드를 참조하십시오.
코드 사본은 다음과 같습니다.
test.foreach (json.jpush, json);
Alert (json.jarray); // 결과는 정상, 123 ~ 456입니다
다른 방법이 있습니다.
코드 사본은 다음과 같습니다.
test.foreach (function (c) {
json.jpush (c);
});
경고 (json.jarray); // 123 ~ 456
바인드를 사용하여 바인드를 사용할 수도 있습니다
코드 사본은 다음과 같습니다.
test.foreach (json.jpush.bind (json));
경고 (json.jarray);
bind는 함수를 수정하는 대신 새 함수를 만듭니다. 새로운 기능의 동작은 원래 함수와 동일하지만 수신기는 우리가 제공하는 객체이며 원래 함수의 수신기는 변경되지 않았습니다.
이것은 함수 또는 메소드가 공유 될 때 공유 방법이 수정되지 않을 것이라고 걱정할 필요가 없기 때문에 BAND 방법의 사용이 매우 안전하다는 것을 의미합니다.