gpt4 book ai didi

javascript - 未捕获的类型错误 : Cannot read property 'item_name' of undefined

转载 作者:行者123 更新时间:2023-11-28 20:13:59 25 4
gpt4 key购买 nike

我正在努力消除我和我的 friend 一直遇到的问题。错误出现在标题中,发生在第 93 行...有什么想法或建议吗?第 93 行在下面标有注释。 document.body.innerHTML.replace("__ITEM__", pocket.item_name);//第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);
}

一如既往,提前致谢,祝您编码愉快!

最佳答案

每次在item之前添加new,例如

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 - 未捕获的类型错误 : Cannot read property 'item_name' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19473039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com