未定义Java脚本管理器

问题描述

大家好,我想用JavaScript创建二十一点,但是我有一个问题,我找不到它为什么说当我有一个entira脚本时就没有定义blackjack_manager

 let blackjack_manager = function (){

      let game = null;

function debug(an_object) {
    document.getElementById("debug").innerHTML = JSON.stringify(an_object);
}

function buttons_initialization(){
    document.getElementById("card").disabled     = false;
    document.getElementById("stand").disabled     = false;
    document.getElementById("new_game").disabled = true;
}

function finalize_buttons(){
    document.getElementById("card").disabled     = true;
    document.getElementById("stand").disabled     = true;
    document.getElementById("new_game").disabled = false;
}

function new_game(){
    let cards = null;
    game = new BlackJack();

    dealer_new_card();
    dealer_new_card();
    cards = game.get_dealer_cards();
    cards[1] = "X";
    document.getElementById("dealer").innerHTML = JSON.stringify(cards);

    player_new_card();
    buttons_initialization();

    document.getElementById("card").addEventListener("click",player_new_card);
    document.getElementById("stand").addEventListener("click",dealer_finish);
    document.getElementById("new_game").addEventListener("click",new_game);
    debug(game);
}

function update_dealer(state){
 if(state.gameEnded){
     let cards = game.get_dealer_cards();
     let msg = JSON.stringify(cards);

    if (state.dealerWon){
        msg = msg +"Win";
    }
    else {
        msg = msg + "lose";
    }
   document.getElementById("dealer").innerHTML = msg;
   finalize_buttons();
  }

}

function update_player(state){
    let cards = game.get_dealer_cards();
    let msg = JSON.stringify(cards);
        
   if(state.gameEnded){
       if (state.pBust ){
           msg = msg +"Lost";
       }
       else {
           msg = msg + "Win";
       }
        finalize_buttons();
    }
      document.getElementById("dealer").innerHTML = msg;

}

function dealer_new_card(){
 let state = game.dealer_move();
 update_dealer(state);
 debug(game);
 return state;
}

function player_new_card() {
    let state = game.player_move();
    update_player(state);
    debug(game);
    return state;

}

function dealer_finish(){
    let state = game.get_game_state();

    game.setDealerTurn(true);
    while(!state.gameEnded){
        update_dealer(state);
        dealer_new_card();
        state= game.get_game_state();
        debug(game);
    }

}
return{
    new_game= new_game
}
}();

这是发生问题的html

 !DOCTYPE html>
<html>

  <head>
    <Meta charset="UTF-8">
    <script src="js/blackjack_object.js"></script>
    <script src="js/blackjack_manager.js"></script>
    <title>BlackJack</title>
  </head>

  <body>
    <header>
      <h1>BLACKJACK</h1>
      
    </header>

    <section id="game">
      <h1>Dealer</h1>
      <p id="dealer"></p>
      <h1>Player</h1>
      <p id="player"></p>
      <button id="card" type="button" >Card</button>
      <button id="stand" type="button">Stand</button>
      <button id="new_game" type="button" disabled>New Game</button>
    </section>

    <section id="sec_debug">
      <h1>Debug</h1>
      <p id="debug"></p>
    </section>

    <section>
      <script> window.onload = blackjack_manager.newgame </script>
    </section>
    <footer></footer>
  </body>

</html> 

这里是问题

错误1:未捕获的SyntaxError:无效的速记属性初始化程序 没有可用的调试器,无法发送“变量”

错误“:未捕获ReferenceError:未定义blackjack_manager tp2 / blackjack_19 alunos / blackjack_oop.html:33 没有可用的调试器,无法发送“变量”

解决方法

new_game = new_game是如何为变量分配值,但是我正在返回对象,所以=应该是: 这解决了无效的速记属性初始值设定项`

,

您的二十一点js可能尚未加载。将您的脚本放在页面最后一个body标记的最后,最后一个window.onload脚本。如有必要,请使用defer

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...