我已经习惯了JS,我需要一些帮助。
在下一个类中,我想在loadMap中调用saveTiles,因为我想要行数组(我无法返回它,所以我做了 saveTiles()函数)。
但是在调用时我有 saveTiles未定义错误。我既不能使用原型定义也不能将 saveTiles 分配给 var
我做错了什么?是否有更好的思考如何更新地图的 this.tiles 属性?
非常感谢!
class Map{
constructor(){
this.xTiles = 32;
this.yTiles = 19;
this.tiles = new Array();
}
saveTiles(lines) {
var xMap = new Array();
var totalCont = 0;
while(totalCont < lines.length){
xMap.push(lines[totalCont++]);
if(totalCont % this.xTiles == this.xTiles - 1){
this.tiles.push(xMap);
xMap = [];
}
}
}
loadMap(map){
var rawFile = new XMLHttpRequest();
rawFile.open("GET", map, false);
rawFile.onreadystatechange = function (){
if(rawFile.readyState === 4)
if(rawFile.status === 200 || rawFile.status == 0){
var allText = rawFile.responseText;
var lines = allText.split(' ');
this.saveTiles(lines); // error -> saveTiles is not defined
}
};
rawFile.send(null);
}
}