我对编程还很陌生(大约一周,哈哈),但这里是我写的脚本的简化版,我似乎无法正确输出。对于学生人数,我在相应的 setter 中放置了一个 if 语句。无论我做什么,if 语句似乎都被绕过了。不知道发生了什么,但我已经盯着这个看了 2 个小时,然后重写了 3 次。有人可以解释一下我做错了什么>
class School {
constructor(numberOfStudents){
this._numberOfStudents = numberOfStudents;
}
get numberOfStudents(){ return this._numberOfStudents}
set numberOfStudents(value){
if(typeof value !== 'string'){
this._numberOfStudents = value
} else {
console.log('Invalid input: numberOfStudents must be set to a Number.')
}
}
};
const highSchool = new School('many');
console.log(highSchool.numberOfStudents);
还要注意;我相信输出应该是这个,因为输入的变量是一个“字符串”
console.log('Invalid input: numberOfStudents must be set to a Number.')
答案 0 :(得分:-1)
class School {
constructor(numberOfStudents) {
this._numberOfStudents = numberOfStudents;
}
get numberOfStudents() {
return this._numberOfStudents;
}
set numberOfStudents(value) {
if (typeof value !== "string") {
this._numberOfStudents = value;
} else {
console.log("Invalid input: numberOfStudents must be set to a Number.");
}
}
}
const highSchool = new School("many");
// The setter is triggered when the value is changed
highSchool.numberOfStudents = 'new value' // Invalid input: numberOfStudents must be set to a Number.
console.log(highSchool.numberOfStudents);