Files
cs-252/lab11/student.js
2026-04-05 18:54:56 -07:00

60 lines
1.7 KiB
JavaScript

/*
Create a 'Student' constructor, like we did for Cat in class.
It should have the following fields:
*firstName
*lastName
*studentID
*display -- A function that prints out the firstName, lastName, and studentID number.
To invoke it, you should call `student.display()`.
Create an array of new students.
Add a 'graduated' property to just one of your students.
Now create another student **without** using the constructor.
(In other words, use the object literal `{}` syntax).
Set the prototype chain manually using the __proto__ field.
Make sure the display method still works (without you having to add it to the object explicitly).
*/
// Create a Student constructor
function Student(firstName, lastName, studentID) {
this.firstName = firstName;
this.lastName = lastName;
this.studentID = studentID;
}
// Add the display method to the prototype
// Manual student doesn't work if display is defined in the constructor
Student.prototype.display = function () {
console.log(`${this.firstName} ${this.lastName}, ID: ${this.studentID}`);
};
var students = [
new Student("John", "Smith", "12345"),
new Student("Jane", "Doe", "67890"),
new Student("Alice", "Johnson", "11111"),
];
// Add a 'graduated' property to just one of the students
students[0].graduated = true;
// Student without using the constructor (object literal syntax)
var manualStudent = {
firstName: "Bob",
lastName: "Wilson",
studentID: "99999",
__proto__: Student.prototype,
};
// Test
console.log("Students created with constructor:");
students.forEach(function (student) {
student.display();
if (student.graduated) {
console.log("This student has graduated!");
}
});
console.log("\nManual student with prototype:");
manualStudent.display();