我有學生課。學生有成績。教師班級可以更改學生的成績。其他類(即父類)不能這樣做。我想我得到了關于如何更改另一個班級的屬性的部分(如果我錯了請糾正我),但是如何確保只有教師班可以改變成績?
class Student {
grade = 'A';
changeGrade(grade) {
this.grade = grade
return `the new grade is ${this.grade}`
}
}
class Teacher {
changeStudentGrade(student, grade) {
return student.changeGrade(grade)
}
}
uj5u.com熱心網友回復:
JavaScript 不支持此功能。但是,您仍然可以通過檢查方法中嘗試的類來添加合適的邏輯來促進它,changeGrade如下所示:
changeGrade(grade, classChangingGrade) {
if (classChangingGrade instanceof Teacher) {
this.grade = grade
return `the new grade is ${this.grade}`
}
}
那么這個方法應該被呼叫如下:
return student.changeGrade(grade, this);
免責宣告
其他類可以通過創建一個新的 Teacher 實體并按changeGrade如下方式呼叫來解決此問題:
student.changeGrade(grade, new Teacher());
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/463353.html
標籤:javascript 打字稿 哎呀
上一篇:你如何在UML類圖中顯示封裝?
下一篇:如何在新類中使用不同類中的變數
