gpt4 book ai didi

javascript - 是否可以扩展已经从另一个类继承的类?

转载 作者:行者123 更新时间:2023-12-02 16:48:10 28 4
gpt4 key购买 nike

我知道直接的答案是否定的,但我和一些人交谈过,他们似乎认为这是可能的。这是我的代码:

var Tile = function(xPos, yPos, state) {
this.createTile(xPos, yPos, state);
}

Tile.prototype = new createjs.Shape();

Tile.prototype.createTile = function(xPos, yPos, state) {
// debugger;
this.x = xPos;
this.y = yPos;
this.onState = state;

var fillCommand = this.graphics.beginFill("#969696").command;
var shapeCommand = this.graphics.drawRoundRect(0, 0, 50, 50, 10).command;

this.on("click", function(){this.toggleState(fillCommand);});

stage.addChild(this);
stage.update();
}

Tile.prototype.toggleState = function(fillCommand) {
if (this.onState === true) {
fillCommand.style = "#969696";
stage.update();
this.onState = false;
} else if (this.onState === false) {
fillCommand.style = "#000000";
stage.update();
this.onState = true;
}
}

如果有人熟悉Shape(),它是在easeljs中实现的。基本上,我在这里创建一个 Tile 类来表示小圆 Angular 正方形,按下它们时会改变颜色。在语法方面,我没有收到错误,网页上没有显示任何内容。我已经有正确的代码来调用 Tile 并且 Canvas 已经设置,或者我也将该代码放在这里。我在这里要问的是,我在这个实现中的想法是否正确?

最佳答案

这有点不传统,但如果它对你有用,那么你就会有更多的力量。从 Shape 继承的更常见方法是执行类似的操作

Tile.prototype = Object.create(createjs.Shape.prototype);
Tile.prototype.constructor = Tile;

Javascript 中的继承有点奇怪,因此,除非您有时间和精力深入研究,否则我建议您坚持使用有效的方法。如果您确实想阅读更多内容,这是一篇可以帮助您入门的好文章:http://ejohn.org/blog/simple-javascript-inheritance/

关于javascript - 是否可以扩展已经从另一个类继承的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26921416/

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