【发布时间】:2020-01-15 00:23:26
【问题描述】:
这是我的第一个“程序”或任何你想用 JavaScript 调用的程序。
我需要使用calcAVG和calcGrade这两个函数来修改avg、total和grade。我无法让calcAVG 函数正常工作。我无法弄清楚为什么该函数不会修改 avg 或 total 值。在程序中,我无法修改对象的前 5 个属性(它是用于赋值的)。
在console.log 中调用时,calcAVG 函数也有效。那么我有某种语法错误吗?
var student = {
fullName : 'Amanda Corbin',
scores : [90,50,88,56,89],
avg : 0,
total : 0,
grade : '',
calcAvg : function(scores,avg,total) {
for (var i = 0; i < this.scores.length; i++) {
this.total += this.scores[i];
}
this.avg = ( this.total / this.scores.length );
return (this.avg);
}
calcGrade : function(avg,grade) {
if (this.avg >=90){
console.log("grade is A");
this.grade = 'A';
} else if (this.avg >= 80 && this.avg <90){
console.log("grade is B");
this.grade = 'B';
} else if (this.avg >= 70 && this.avg <80){
console.log("grade is C");
this.grade = 'C';
} else if (this.avg >= 60 && this.avg <70){
console.log("grade is D");
this.grade = 'D';
} else if (this.avg <60){
console.log("grade is F");
this.grade = 'F';
}
return (this.grade);
}
console.log(student);
console.log(student.calcAvg());
console.log(student.calcGrade());
【问题讨论】:
-
1.
calcAvg函数 2 后没有逗号。没有关闭}以关闭student。也不需要函数参数;您正在通过this访问这些字段。您可以删除要返回的值周围的括号。 -
我无法让 calcAVG 函数正常工作 - 哪里不正确?
-
@jaromanda X 我正在使用 notepad++ 和 chrome 来制作/查看程序。当我使用 console.log(student.calcAvg());我得到 74.6,这是正确的值。我不确定为什么它不适合你。由于 calcAVG 功能不工作,calcGrade 一将不工作。 (我尝试在没有其他功能的情况下直接将其传递给 avg 并让它对我正常工作)。任何人都感谢您的评论
标签: javascript function object