If语句未在setter内部运行



我对编程还很陌生(大约一周,哈哈(,但这是我写的一个简单的脚本,我似乎无法正确输出。对于学生的数量,我在相应的setter中放置了一个if语句。无论我做什么,if似乎只是绕过了if语句。不知道发生了什么,但我已经盯着它看了大约两个小时,并重写了三次。有人能解释我做错了什么吗>

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.')
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);

最新更新