gpt4 book ai didi

javascript - 为什么我的实例的属性未定义?

转载 作者:行者123 更新时间:2023-11-28 19:12:21 24 4
gpt4 key购买 nike

这是一个用于在页面上渲染动画的脚本,我正在完成this tutorial 。我定义了一个 Sprite 类,然后创建了一个名为 coin 的实例,但 coin 的属性似乎没有定义。调试器在尝试运行 coin.render() 时说我的上下文未定义,但我看不出我的实例化有什么问题。

如果需要,我可以提供 html 或图像。

window.onload = function () {

var spriteSheet = new Image();
spriteSheet.src = "spriteSheet.jpg";

//define sprite class

function sprite(options) {

var that = {};

this.context = options.context;
this.width = options.width;
this.height = options.height;
this.image = options.image;

that.render = function() {

that.context.drawImage(
that.image,
0,
0,
that.width,
that.height,
0,
0,
that.width,
that.height
);

}

return that;

}

var canvas = document.getElementById("coinAnimation");
canvas.width = 100;
canvas.height = 100;

var coin = sprite({
context: canvas.getContext("2d"),
width: 100,
height: 100,
image: spriteSheet
});

//alert(coin.width);

coin.render();

}

最佳答案

据我所知,唯一的问题是这行:

var coin = sprite({

应该是

var coin = new sprite({

第一个告诉 JavaScript 将构造函数作为函数执行。第二个告诉 JS 创建一个新实例。

此外,变量 that 是一个空对象。您需要将其分配为 this 而不是 {}

关于javascript - 为什么我的实例的属性未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30540091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com