Setter and Getter problems



为什么if语句没有在age((的setter中执行?它应该返回"年龄必须是一个数字">

get语句有效,但set语句无效。

class Player {
constructor(name, age, position) {
this._name = name;
this._age = age;
this._position = position;
}
set age(value){ 
if(value.isNaN()) {
return "Age must be a number";
} else {
return this._age;
}
}
get name() {
return this._name;
}
get age() {
if(typeof this._age === "number") {
return this._age;
}else{
return "Cant fetch players age"
}
}
get position() {
return this._position;
}
};
const test = new Player("Peter", "38", "Forward")
console.log(test.age)

您的构造函数应该调用setter而不是实例变量:

class Player {
constructor(name, age, position) {
this._name = name;
this.age = age;  //call setter
this._position = position;
}
...

最新更新