我来自Java背景,希望以类似的方式引用事物。 我不确定要看哪里。 伪代码:
var elements = [];
class Element
{
constructor()
{
this.isClicked;
}
mouseOver()
{
///returns true if mouse is over
}
click()
{
this.isClicked = true;
}
unclick()
{
this.isClicked = false;
}
}
class Parent extends Element
{
constructor()
{
this.children = [];
this.x = 0;
this.y = 0;
elements.push(this)
}
addChild()
{
children.push(new Child(this));
}
}
class Child extends Element
{
constructor(Parent p)
{
this.parent = p;
this.x = 0;
this.y = 0;
elements.push(this)
}
move()
{
this.x = parent.x;
this.y = parent.y;
}
}
var liveElement;
function mousePressed()
{
for(Element e : elements)
{
if(e.mouseOver)
{
liveElement = e;
liveElement.click();
}
}
}
function mouseReleased()
{
liveElement.unclick();
liveElement = null;
}
是否可以在普通JavaScript中执行此类操作?我还想在elements
中水平引用所有对象。必要时,Child对象应该最多可以引用parent
。
答案 0 :(得分:1)
是的,自ES2015(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes)起,可以在JS中做类似的事情。如果该应用程序应在不同的浏览器和版本中运行,则建议您使用Babel(https://babeljs.io/)这样的编译器,因为最后的ES功能与旧版浏览器不兼容。子类和父类之间的关系可以在mdn参考(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super)中找到。希望对您有所帮助。