Javascript 未定义变量返回的赋值
我正在学习一个法语教程,我被一个未定义的变量卡住了,可能我遗漏了什么,似乎值被分配给了变量,但我无法访问它,可能是范围问题Javascript 未定义变量返回的赋值,javascript,undefined,Javascript,Undefined,我正在学习一个法语教程,我被一个未定义的变量卡住了,可能我遗漏了什么,似乎值被分配给了变量,但我无法访问它,可能是范围问题 function Tileset(url) { // Chargement de l'image dans l'attribut image this.image = new Image(); this.image.referenceDuTileset = this; this.image.onload = function() {
function Tileset(url) {
// Chargement de l'image dans l'attribut image
this.image = new Image();
this.image.referenceDuTileset = this;
this.image.onload = function() {
if(!this.complete)
throw new Error("Erreur de chargement du tileset nommé \"" + url + "\".");
// Largeur du tileset en tiles
this.referenceDuTileset.largeur = this.width / 32;
}
this.image.src = "tilesets/" + url;
}
Tileset.prototype.dessinerTile = function(numero, context, xDestination, yDestination) {
var xSourceEnTiles = numero % this.largeur;
console.log(this);
if(xSourceEnTiles == 0) xSourceEnTiles = this.largeur;
var ySourceEnTiles = Math.ceil(numero / this.largeur);
var xSource = (xSourceEnTiles - 1) * 32;
var ySource = (ySourceEnTiles - 1) * 32;
context.drawImage(this.image, xSource, ySource, 32, 32, xDestination, yDestination, 32, 32);
}
console.log的输出(此):
console.log(this.largeur)的输出
prototype.Dessintile中未定义this.largeur。这是导致它崩溃的原因!试试这个.referenceDuTileset.largeur。@PhilipG你是说这个.image.referenceDuTileset吗?因为this.referenceDuTileset.largeur返回未捕获的TypeError:无法读取未定义的属性'largeur'
-> Tileset {image: img, dessinerTile: function}
-> image: img
largeur: 6
-> __proto__: Tileset
undefined