有人可以验证我哪里出错吗?
答案 0 :(得分:2)
addTodos
参数todos
将覆盖全局todos
,因此只需将其重命名为其他内容即可。见下面的例子
var todos = ['1','2','3'];
function display() {
console.log(todos)
}
function addTodos(todo) {
todos.push(todo)
display()
}
addTodos('4')
答案 1 :(得分:1)
您的代码遇到的问题是,您创建了一个全局变量var todos
,同时在addTodos
函数中添加了一个参数todos
,JavaScript正在访问你的函数参数不是全局变量,
现在将全局变量的名称更改为var myTodos
以避免冲突
希望这有帮助
答案 2 :(得分:0)
todos是一个字符串,而不是发生错误的数组。
string
类型没有push
方法。此外,首先在本地范围内找到本地待办事项,因此它会掩盖阵列版本。
答案 3 :(得分:0)
不确定你是否已经意识到,你正在发送一个名为todos的论据。您实际上是在覆盖之前设置的todos数组。用新变量名替换它可以解决问题
function addTodos(newTodo) {
todos.push(newTodo);
}