簡體   English   中英

是否可以訪問 JavaScript 中另一個類中的類實例?

[英]Is it possible to access to a class instance that it is inside another class in JavaScript?

我試圖訪問在類中實例化的對象,但有些東西不起作用。

我有三個類:應用程序、地圖、播放器

應用類實例化地圖類

 class App { constructor(canvas, sizeX, sizeY, sizeCase) { this.map = new Map(canvas, sizeX, sizeY, sizeCase); } }

地圖

Map類中,實例化了Player類。 我的主要問題是我無法訪問Player的實例來訪問它的方法

 class Map { constructor(canvas, sizeX, sizeY, sizeCase) { this.canvas = document.getElementById("canvas"); this.canvas.width = sizeX * sizeCase; this.canvas.height = sizeY * sizeCase; this.size = { x: sizeX, y: sizeY, case: sizeCase }; } setPlayers(quantity) { for (let index = 0; index < quantity; index++) { let x = App.random(this.size.x); let y = App.random(this.size.y); if (this.mapGame[x][y] == 0) { switch (index) { case 0: let player1 = new Player("vampi", 100, y, x); break; case 1: let player2 = new Player("wolfi", 100, y, x); break; default: break; } }else { console.log("Position occupied"); index--; } } } }

播放器

 class Player { constructor(name, score, positionY, positionX) { this.name = name; this.score = score; } drawPlayer(playerImage) { app.map.mapGame[this.y][this.x] = 2; } }

我在這里讀到的大多數問題都與 java 相關,而我發現的 javascript 問題與我的問題無關,或者我在閱讀它們后沒有找到關系。

控制台說:

“類型錯誤:app.map.player1 未定義”

變量與類屬性不同。 要使app.map.player1工作,您需要分配該屬性。

setPlayers(quantity) {
  for (let index = 0; index < quantity; index++) {
    let x = App.random(this.size.x);
    let y = App.random(this.size.y);
    if (this.mapGame[x][y] == 0) {
      switch (index) {
        case 0:
          this.player1 = new Player("vampi", 100, y, x);
          break;
        case 1:
          this.player2 = new Player("wolfi", 100, y, x);
          break;
        default:
          break;
      }
    } else {
      console.log("Position occupied");
      index--;
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM