这是我第一次尝试oo javascript:
function GuiObject() {
this.x = 0;
this.y = 0;
this.width = 0;
this.height = 0;
this.parent = null;
this.children = [];
this.getWidth = function()
{
return this.width;
};
this.getHeight = function()
{
return this.height;
};
this.paint = function(ctx)
{
};
};
function paintGui(ctx, root)
{
ctx.save();
ctx.translate(root.x, root.y);
root.paint(ctx);
for (int i=0; i<root.children.length; ++i)
{
paintGui(ctx, root.children[i]);
}
ctx.restore();
};
现在在paintGUI函数中,root.children.lengths行引发错误:
Uncaught SyntaxError:意外的标识符。
我做错了什么?
谢谢!
答案 0 :(得分:4)
如果不查看实际构建GuiObject
的代码,但很难说实际问题是什么,但是对于它的价值,这是编写“类”的更好方法。
function GuiObject() {
this.x = 0;
this.y = 0;
this.width = 0;
this.height = 0;
this.parent = null;
this.children = [];
}
GuiObject.prototype.getWidth = function()
{
return this.width;
};
GuiObject.prototype.getHeight = function()
{
return this.height;
};
GuiObject.prototype.paint = function(ctx)
{
};
这样做,每个实例都可以共享相同的方法。另一方面,您将为您创建的每个实例创建新的函数对象。在构造函数中定义方法而不是将它们附加到原型的唯一原因是,如果他们需要访问那些永远不会附加到this
的私有成员。
答案 1 :(得分:2)
int i
?那在Javascript中应该是什么意思呢?我认为你的意思是var i
。