ホームページ  >  記事  >  ウェブフロントエンド  >  javascript_javascript のヒントでバインドを使用して受信者を指定する方法

javascript_javascript のヒントでバインドを使用して受信者を指定する方法

WBOY
WBOYオリジナル
2016-05-16 16:50:141087ブラウズ
コードをコピー コードは次のとおりです:

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

ES5 で提供される forEach ループの例を使用し、それらを json の jArray に追加します。
コードをコピーします コードは次のとおりです:

examp.forEach(json.jPush);

この時点でエラーが報告されます:
javascript_javascript のヒントでバインドを使用して受信者を指定する方法

が生成されます。 このエラーの理由は、json.jPush メソッドの this が json オブジェクトではなくウィンドウを指しているためです。この問題を解決する方法は、この担当者を見つけることです。
幸いなことに、forEach() はオブジェクトを指定するために使用されるパラメーターを提供します。
alert(json.jArray);//結果は正常です、123~456


別の方法もあります:


コードをコピー コードは次のとおりです: example.forEach(function (c) {
json.jPush( c);
});
alert(json.jArray);//123~456


バインドも使用できます


コードをコピー コードは次のとおりです。 examp.forEach(json) .jPush.bind(json));
alert(json.jArray) ;


bind は関数を変更するのではなく、新しい関数を作成します。
これは、関数またはメソッドが共有される場合、バインド メソッドの使用が非常に安全であることを意味します。共有メソッドが変更されないことを心配する必要はありません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。