2

我在这里关注谷歌浏览器的扩展开发指南: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_ 方法中进行了测试,并验证“this”只是 kittenGenerator 对象。由于 showPhotos_ 只是该对象的一个​​方法,这应该是隐式完成的,那么为什么还要这个绑定呢?


请注意,由于 popup.js 文件中的拼写错误,google 的示例将无法运行。要更正它,请将“kittensOnFlickr_”更改为“searchOnFlickr_”。

4

1 回答 1

4

showPhotos_从 req.onload 调用时如果没有绑定,this则不会。reqkittenGenerator

于 2013-02-10T19:30:21.767 回答