JS - 无法在类内调用函数

时间:2017-08-14 15:01:27

标签: javascript function scope

我已经习惯了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);
    }
}

0 个答案:

没有答案