我正试图摆脱这个错误,我的朋友和我一直遇到问题。错误在标题中,发生在第93行...任何想法或建议?第93行下方标有注释。 document.body.innerHTML.replace("__ITEM__", pocket.item_name); //LINE 93
我想提及的另一件事是,我已经裁剪了所有不必要的代码(我认为),因此请询问是否需要另一部分。
如果这是新手犯的错误,我不会感到惊讶,请随时致电我。对于任何不良做法或您可能会发现的不良做法,我也表示歉意,对此我还是陌生的。
首先调用函数start()。
var status, items_none, items, pocket, money;
function item(item_name, usage_id, description, minimum_cost) {
this.item_name = item_name;
this.usage_id = usage_id;
this.description = description;
this.worth = minimum_cost;
this.usage_verb = "Use";
this.choose_number = false;
}
function start() {
status = "Welcome to Collector.";
items_none = item("---", -2, "Your pockets are empty.", 0);
items = new Array();
items[0] = item("Cardboard Box", 0, "Open the box to see what's inside.", 100);
...
pocket = items_none; //Start with empty pockets.
money = 100; //Start with 0 coins.
updateGui();
}
function updateGui() {
//This updates all text on the page.
document.body.innerHTML.replace("__COINS__", money);
document.body.innerHTML.replace("__ITEM__", pocket.item_name); //LINE 93
document.body.innerHTML.replace("__STATUS__", status);
document.body.innerHTML.replace("__ITEM:USE__", pocket.usage_verb);
document.body.innerHTML.replace("__ITEM:DESC__", pocket.description);
document.body.innerHTML.replace("__ITEM:WORTH__", pocket.worth);
document.body.innerHTML.replace("__ITEM:VERB__", pocket.usage_verb);
}
像往常一样,在此先感谢并祝您编程愉快!
最佳答案
每次在new
之前添加item
,例如
items_none = new item("---", -2, "Your pockets are empty.", 0);
...
items[0] = new item("Cardboard Box", 0, "Open the box to see what's inside.", 100);
为什么是这样?考虑一个叫做
pair
的函数:function pair(x, y) { this.x = x; this.y = y; }
仅在不使用
new
的情况下调用它意味着您在进行简单的函数调用。 this
仅指当前对象上下文,可能是window
。p = pair(55, 66);
alert(window.x == 55); // true!
alert(p.x); // error--p is undefined.
“ new”需要一个函数并将其视为构造函数。
this
设置为新对象。p = new pair(55, 66);
alert(window.x == 55); // false!
alert(p.x); // 55!
关于javascript - 未捕获的TypeError:无法读取未定义的属性“item_name”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19473039/