2

ここで Google Chrome の拡張機能開発ガイドに従っています: http://developer.chrome.com/extensions/getstarted.html

このファイルの 41 行目: http://sprunge.us/NFjZ

requestKittens: function() {
  var req = new XMLHttpRequest();
  req.open("GET", this.searchOnFlickr_, true);
  req.onload = this.showPhotos_.bind(this);
  req.send(null);
},

、彼らはこのようにバインド関数を使用しました this.showPhotos_.bind(this); このバインドがないと、例の拡張機能は機能しません。私は showPhotos_ メソッドでテストし、「これ」が単なるkittenGeneratorオブジェクトであることを確認しました。showPhotos_ はそのオブジェクトの単なるメソッドであるため、これは暗黙的に実行する必要があります。


popup.js ファイルのスペルミスにより、Google の例は機能しないことに注意してください。これを修正するには、「kittensOnFlickr_」を「searchOnFlickr_」に変更します。

4

1 に答える 1

4

showPhotos_req.onload から呼び出されたときにバインディングがないと、 は無効にthisなります。reqkittenGenerator

于 2013-02-10T19:30:21.767 に答える