-
Notifications
You must be signed in to change notification settings - Fork 49
Expand file tree
/
Copy pathmain.js
More file actions
55 lines (47 loc) · 1.31 KB
/
main.js
File metadata and controls
55 lines (47 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// NOTICE: DO NOT MODIFY THE CODE IN THIS FILE
// But you can uncomment code below and run this file to understand how to use the classes
class MyClass {
constructor() {
this.students = [];
}
addStudent(student) {
if (!(student instanceof Student)) {
return -1;
}
this.students.push(student);
return this.students.length - 1;
}
getStudentById(id) {
if (id < 0 || id >= this.students.length) {
return null;
}
return this.students[id];
}
}
class Student {
constructor() {
this.name = undefined;
}
setName(userName) {
if (typeof userName !== 'string') {
return;
}
this.name = userName;
}
getName() {
if (this.name === undefined) {
return '';
}
return this.name;
}
}
// const myClass = new MyClass();
// const names = ['John', 'Jane', 'Doe', 'Smith'];
// names.forEach(name => {
// const student = new Student();
// student.setName(name);
// const newStudentId = myClass.addStudent(student);
// const newStudentName = myClass.getStudentById(newStudentId).getName();
// console.log('[+] Added student with id: %d, name: %s', newStudentId, newStudentName);
// });
module.exports = { MyClass, Student };