var json = {
jArray: [],
jPush: function (c) {
this.jArray.push(c);
}
}
var example = ["123", "~", "456"];
ES5 で提供される forEach ループの例を使用し、それらを json の jArray に追加します。
examp.forEach(json.jPush);
この時点でエラーが報告されます:
が生成されます。 このエラーの理由は、json.jPush メソッドの this が json オブジェクトではなくウィンドウを指しているためです。この問題を解決する方法は、この担当者を見つけることです。
幸いなことに、forEach() はオブジェクトを指定するために使用されるパラメーターを提供します。
alert(json.jArray);//結果は正常です、123~456
別の方法もあります:
json.jPush( c);
});
alert(json.jArray);//123~456
バインドも使用できます
コードをコピー
コードは次のとおりです。 examp.forEach(json) .jPush.bind(json));
alert(json.jArray) ;
bind は関数を変更するのではなく、新しい関数を作成します。
これは、関数またはメソッドが共有される場合、バインド メソッドの使用が非常に安全であることを意味します。共有メソッドが変更されないことを心配する必要はありません。