私は大胆さのコースを研究していて、問題に遭遇しました。
https://www.udacity.com/course/viewer#!/c-cs255/l-49464373/e-73862317/m-73162952
function xhrGet(reqUri,callback) {
var xhr = new XMLHttpRequest();
xhr.open("GET", reqUri, true);
xhr.onload = callback;
xhr.send();
}
var TILEDMapClass = Class.extend({
// Boolean flag we set once our map atlas
// has finished loading.
fullyLoaded: false,
//-----------------------------------------
// Load the json file at the url 'map' into
// memory. This is similar to the requests
// we've done in the past using
// XMLHttpRequests.
load: function (map) {
// Perform an XMLHttpRequest to grab the
// JSON file at url 'map'. We've provided
// the xhrGet function from the optional
// unit for you to use if you want.
//
// Once the XMLHttpRequest loads, set the
// 'fullyLoaded' flag to true.
//
// YOUR CODE HERE
xhrGet(map, function(){
this.fullyLoaded = true;
});
}
});
// We define a single global instance of our
// map for the rest of our game code to access.
var gMap = new TILEDMapClass();
リンクには、gMap.load.apply(gMap, [jsonURL]);
http://forums.udacity.com/questions/100058023/scope-of-this#cs255を使用していると書かれています
しかし、私はそれが呼び出されたメソッドを使用しているにもかかわらず、それをインスパイアしていると思います.(負荷はgMapに属します)
しかし理由は
xhr.onload = function(){
this.fullyLoaded = true;
}
xhr オブジェクトに属するメソッドです。
そして、this
無名関数の中にあります
this
gMap ではなく xhr を参照する必要があります。
なぜthis
参照 gMap なのですか?