function startMatch(){
Wbrook0 = new component(50, 50, "pieces/WhiteBrook.png", 0, 0, "piece", "Wbro0");
Wknight0 = new component(50, 50, "pieces/WhiteKnight.png", 50, 0, "piece", "Wknight0");
Wbishop0 = new component(50, 50, "pieces/WhiteBishop.png", 100, 0, "piece", "Wbis0");
Wqueen = new component(50, 50, "pieces/WhiteQueen.png", 150, 0, "piece", "Wque");
Wking = new component(50, 50, "pieces/WhiteKing.png", 200, 0, "piece", "Wking");
Wbishop1 = new component(50, 50, "pieces/WhiteBishop.png", 250, 0, "piece", "Wbis1");
Wknight1 = new component(50, 50, "pieces/WhiteKnight.png", 300, 0, "piece", "Wknight1");
Wbrook1 = new component(50, 50, "pieces/WhiteBrook.png", 350, 0, "piece", "Wbro1");
}
function helpme(){
console.log(component.length); //This will output 7, which is how many parameters component has
console.log(Bking.constructor.length); //Same here
}
function component(width, height, color, x, y, type, me){
//Mostly unrelated stuff, the stuff I left just defines the parameters
this.width = width;
this.height = height;
this.x = x;
this.y = y;
this.id = me;
}
是否可以找到所有组件参数的所有当前值? (即如果我插入" x"到我要求进入console.log()的代码中,它将打印0,50,100,150,200,300和350。
我知道我可以为每个人做console.log(Wbrook.x),但我已经有32个这样做了,为了做我想做的事,我也需要做y和id在我搞砸之前,我想我是否有更简单的方法。
如果描述和标题含糊不清,我很抱歉,我对构造函数没有多少经验。提前谢谢。
答案 0 :(得分:1)
我会在实例化时将组件保存在数组中。然后,您可以查询该数组并选择所需的属性。
_allComponents = [];
function startMatch() {
Wbrook0 = new component(50, 50, "pieces/WhiteBrook.png", 0, 0, "piece", "Wbro0");
Wknight0 = new component(50, 50, "pieces/WhiteKnight.png", 50, 0, "piece", "Wknight0");
Wbishop0 = new component(50, 50, "pieces/WhiteBishop.png", 100, 0, "piece", "Wbis0");
Wqueen = new component(50, 50, "pieces/WhiteQueen.png", 150, 0, "piece", "Wque");
Wking = new component(50, 50, "pieces/WhiteKing.png", 200, 0, "piece", "Wking");
Wbishop1 = new component(50, 50, "pieces/WhiteBishop.png", 250, 0, "piece", "Wbis1");
Wknight1 = new component(50, 50, "pieces/WhiteKnight.png", 300, 0, "piece", "Wknight1");
Wbrook1 = new component(50, 50, "pieces/WhiteBrook.png", 350, 0, "piece", "Wbro1");
}
function helpme() {
console.log(component.length); //This will output 7, which is how many parameters component has
console.log(Bking.constructor.length); //Same here
}
function component(width, height, color, x, y, type, me) { //Mostly unrelated stuff, the stuff I left just defines the parameters
this.width = width;
this.height = height;
this.x = x;
this.y = y;
this.id = me;
_allComponents.push(this);
}
function getPropertyOfComponents(components, propertyName) {
var values = [];
components.forEach(function(component) {
values.push(component[propertyName]);
});
return values.join(",");
}
startMatch();
console.log(getPropertyOfComponents(_allComponents, 'x'));