簡體   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