繁体   English   中英

如何通过另一个对象访问一个对象?

[英]How do I access an object through another object?

我正在尝试作为一个初学者创建一个国际象棋游戏,遇到的问题之一是我需要一个棋子架来保持分配给棋子的值。 样片架将更改每个样片的位置,但我需要更改原始样片的值

我尝试添加另一个holder对象,但这将导致相同的问题。 然后,我尝试只留下点点滴滴,看看程序是否无法识别它是否可以正常工作。 然后,我将括号括起来,希望它会被更改然后注册,但是它也不起作用。

function pieces(piece ,posX, posY, moveCount, tileLocation, turn) {
  this.piece = piece;
  this.posX = posX;
  this.posY = posY;
  this.moveCount = moveCount;
  this.tileLocation = tileLocation;
  this.turn = turn;
}
function pieceHolder(pieceHold, extra, turn, color, tile){
  this.pieceHold = pieceHold;
  this.extra = extra;
  this.turn = turn;
  this.color = color;
  this.tile = tile;
}
onEvent("wpawn1", "click", function() { //"wpawn1" is the id for another button
  holder.pieceHold = wpawn1.piece;
  holder.extra = 5;
  holder.turn = wpawn1.turn;
  holder.tile = wpawn1.tileLocation;
});


var holder = new pieceHolder();
var wpawn1 = new pieces("wpawn1", -5, 285, 0, "a2", 0, "w");
var wpawn2 = new pieces("wpawn2", 35, 285, 0, "b2", 0, "w");

holder.piece.tileLocation = holder.tile; // did not work
(holder.piece).tileLocation = holder.tile; // did not work

我希望将holder.piece转换为wpawn1或wpawn2之类的名称。 然后将其注册为wpawn1.tileLocation或wpawn2.tileLocation。 它们都不起作用,程序无法理解我的代码。

尝试这个:

var holder = new pieceHolder({});

构造holder对象时,您不会传递任何内容,因此它是undefined 尝试访问holder.piece.tileLocation您尝试的是undefined tileLocation。 更好的方法是始终对您的参数使用默认值。

语法很好,但是您尝试在执行onEvent参数中的回调(函数)之前到达holder对象的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM