我正在学习OOP,我相信在尝试使用函数检索值时,我已经精通错误。但是这次我真的被卡住了。尝试在id()
placeCards()
和appendChilds()
时,我一直收到“意外的令牌”
function GUI(player)
{
for (var i = 0, j = arguments.length; i <= j; i++)
{
var display = document.createElement("div");
id = function()
{
idElem = document.createElement("p");
idElem.appendChild(document.createTextNode(
player.name == "Player" ? "You" : "Casino"));
return idElem;
}
placeCards = function()
{
for (var card = 0, totalCards = player.hand.length;
card <= totalCards;
card++)
var cardElem = document.createElement("img");
setAttributes(cardElem,
{
"id" : (player.name == "Player" ? "player" : "casino")
+ "Card" + card,
"class" : "card",
"src" : "images/Cards/Back.png",
"alt" : "Back of a card",
"title" : "Back of a card"
});
return cardElem;
}
appendChilds(display, {id(), placeCards()});
table.appendChild(display);
}
}
player = new Player("Player");
GUI(player);
我为appendChilds构建的辅助函数如下:
function setAttributes(element, attributes)
{
for (var key in attributes) {
element.setAttribute(key, attributes[key]);
}
}
任何与手头问题相关的帮助或学习OOP的可靠资源都将不胜感激。
答案 0 :(得分:1)
{...}
定义了一个对象文字,它需要键值对。你看起来更像是一个数组,它由[...]
定义。
答案 1 :(得分:1)
这可能就在这里:
appendChilds(display, {id(), placeCards()});
我不知道你要做什么,但这种语法肯定是不对的。
您可能需要一个对象文字,它采用键值对。
appendChilds(display, {
id: id(),
cards: placeCards()
});
尽管使用的确切键取决于函数所期望的内容。
或者也许是数组?
appendChilds(display, [id(), placeCards()]);
您说appendChilds
的功能也标记为setAttributes
,并且似乎不附加任何子项。你确定没错?