JavaScript不使用x.y,其中y是变量的名称

JavaScript not using x.y, where y is the name of a variable

本文关键字:变量 其中 JavaScript      更新时间:2023-09-26

JS新手在这里,并且在传递参数时遇到问题。我正在对象内部编写一个函数,不明白JS为什么不在函数中传入我的参数。参见下面的示例

var students = ["Joseph", "Susan", "William", "Elizabeth"]
var scores = [ [80, 70, 70, 100],
           [85, 80, 90, 90],
           [75, 70, 80, 75],
           [100, 90, 95, 85] ]
var gradebook = {
"Joseph": {
    testScores: scores[0]
},
"Susan": {
    testScores: scores[1]
},
"William": {
    testScores: scores[2]
},
"Elizabeth": {
    testScores: scores[3]
},

addScore: function(student, score){
    console.log(student) //=> output as expected
    console.log(score) //=> output as expected
    console.log(gradebook.Joseph.testScores) //=> this works as expected and shows Joseph's scores
    console.log(gradebook.student.testScores) //=> gives TypeError: Cannot read property 'testScores' of undefined
}
};
gradebook.addScore("Joseph", 30);

我把控制台日志语句放在调试和弄清楚发生了什么。我不知道为什么当我硬编码学生的名字时,这是有效的,但当我在gradebook对象之外运行函数时,把学生的名字作为参数传入时,这就不起作用了。任何帮助都将不胜感激!

使用[]而不是句点。成绩册[学生]。测试分数应该会给你想要的结果。

相关文章: