如何解决未定义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
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。