当您点击“添加列表”按钮时,我不确定为什么我的'name'变量未定义。
这是疑似问题代码:
function addList() {
let name = prompt("What would you like your list to be called?");
console.log(name);
if (name != null) {
console.log(name);
let name = new list(`${name}`, "[]");
const markup = `
<div id="${name}">
${this.name} List:
<br>
${this.items}
<br>
${this.button}
<br>
</div>
`;
document.getElementById("Shopping").append(markup);
}
return;
}
这是codepen: https://codepen.io/vaughnick/pen/YYBoeq
感谢您在我的旅程中为我提供的任何见解/教程:)
答案 0 :(得分:2)
那是因为你有两个名为name
的变量。由于let
是块范围的变量,因此您引用的name
将在下一行中声明。这会导致您的错误。您可以更改第二个变量名称,也可以删除let
以避免创建具有相同名称的新变量。
答案 1 :(得分:1)
let是作用域,通过在if {}块中重新定义它,它会创建一个新的临时变量。在创建它之前,它是未定义的。见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let