0

自分で修正できたエラーがありました。私のコードが機能しなかった理由と、その原因のメカニズムを説明してください。

コードは以下に含まれています。

var listTables = function (tables) {
  console.log(tables);
}

var ajaxReq = function (success_cb, url) {
  // success_cb can be invoked here without errors
  var http = new XMLHttpRequest();
  http.onreadystatechange = function (success_cb) {
    if (this.readyState == 4 && this.status == 200) {
      success_cb(this); // Uncaught TypeError: success_cb is not a function
    }
  }
  http.open("GET", url, true);
  http.send();
}
ajaxReq(listTables, "http://www.someurl.com");

関数定義success_cbからコールバックを削除すると、コードは正常に動作します。onreadystatechangeこれはスコープに関連する問題ですか?

4

1 に答える 1