在 javascript 中的 class 声明中添加特定数据类型的约束
Adding constraints of a specific data type in class declaration in javascript
我有以下代码练习:
创建 class 具有以下字段的实习生:
名称(字符串)
姓氏(字符串)
懒惰(数字从 20 到 50)
好奇心(从 0 到 100 的数字)
技能(从 0 到 100 的数字)
不负责任(从 0.0 到 1.0 的浮点数)
为此class创建计算实习生“标记”的方法,即通过公式计算
问题:
如何为 class 中的原始数据类型添加约束?像 int a,但在 20 到 50 的范围内。或字符串。这是我没有约束的代码:
class Intern {
constructor(name, surname, laziness, curiosity, skill, irresponsibility) {
this.name = name
this.surname = surname
this.laziness = laziness
this.curiosity = curiosity
this.skill = skill
this.irresponsibility = irresponsibility
}
getMark() {
let mark = (((this.skill+this.curiosity)*(1.5 - this.irresponsability))/(this.laziness*0.25));
return mark
}
}
如果给定值超出限制,您希望发生什么情况?实习生应该获得默认值吗?
我会为每个属性创建 if 语句,并检查给定值是否大于最低约束且小于最高约束:
class Intern {
constructor(name, surname, laziness, curiosity, skill, irresponsibility) {
this.name = name
this.surname = surname
if(laziness<=50 && laziness>=20){
this.laziness = laziness
}
if(curiosity<=100 && curiosity>=0){
this.curiosity = curiosity
this.skill = skill
this.irresponsibility = irresponsibility
}
getMark() {
let mark = (((this.skill+this.curiosity)*(1.5 - this.irresponsability))/(this.laziness*0.25));
return mark
}
<= 和 >= 运算符检查值是否小于或等于或大于或等于。
我有以下代码练习:
创建 class 具有以下字段的实习生: 名称(字符串) 姓氏(字符串) 懒惰(数字从 20 到 50) 好奇心(从 0 到 100 的数字) 技能(从 0 到 100 的数字) 不负责任(从 0.0 到 1.0 的浮点数) 为此class创建计算实习生“标记”的方法,即通过公式计算
问题: 如何为 class 中的原始数据类型添加约束?像 int a,但在 20 到 50 的范围内。或字符串。这是我没有约束的代码:
class Intern {
constructor(name, surname, laziness, curiosity, skill, irresponsibility) {
this.name = name
this.surname = surname
this.laziness = laziness
this.curiosity = curiosity
this.skill = skill
this.irresponsibility = irresponsibility
}
getMark() {
let mark = (((this.skill+this.curiosity)*(1.5 - this.irresponsability))/(this.laziness*0.25));
return mark
}
}
如果给定值超出限制,您希望发生什么情况?实习生应该获得默认值吗?
我会为每个属性创建 if 语句,并检查给定值是否大于最低约束且小于最高约束:
class Intern {
constructor(name, surname, laziness, curiosity, skill, irresponsibility) {
this.name = name
this.surname = surname
if(laziness<=50 && laziness>=20){
this.laziness = laziness
}
if(curiosity<=100 && curiosity>=0){
this.curiosity = curiosity
this.skill = skill
this.irresponsibility = irresponsibility
}
getMark() {
let mark = (((this.skill+this.curiosity)*(1.5 - this.irresponsability))/(this.laziness*0.25));
return mark
}
<= 和 >= 运算符检查值是否小于或等于或大于或等于。