Σύγκριση αντικειμένων στην ΑΟΠ στην JavaScript
Ας δούμε πώς συγκρίνονται μεταβλητές που περιέχουν αντικείμενα. Δύο μεταβλητές θα θεωρηθούν ίσες, αν περιέχουν αναφορά στο ίδιο αντικείμενο. Ας δούμε πρακτικά. Ας υποθέσουμε ότι έχουμε την ακόλουθη κλάση:
class User {
constructor(name) {
this.name = name;
}
}
Ας δημιουργήσουμε δύο αντικείμενα αυτής της κλάσης:
let user1 = new User('1');
let user2 = new User('2');
Ας συγκρίνουμε μεταβλητές που περιέχουν αναφορά στο ίδιο αντικείμενο:
console.log(user1 === user1); // true
Τώρα ας συγκρίνουμε μεταβλητές, που περιέχουν αναφορά σε διαφορετικά αντικείμενα:
console.log(user1 === user2); // false
Πείτε ποιο θα είναι το αποτέλεσμα της σύγκρισης στον ακόλουθο κώδικα:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 === emp2);
Πείτε ποιο θα είναι το αποτέλεσμα της σύγκρισης στον ακόλουθο κώδικα:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 === emp1);
Πείτε ποιο θα είναι το αποτέλεσμα της σύγκρισης στον ακόλουθο κώδικα:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('john');
console.log(emp1 === emp2);
Πείτε ποιο θα είναι το αποτέλεσμα της σύγκρισης στον ακόλουθο κώδικα:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 !== emp1);
Πείτε ποιο θα είναι το αποτέλεσμα της σύγκρισης στον ακόλουθο κώδικα:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = emp1;
console.log(emp1 === emp2);
Πείτε ποιο θα είναι το αποτέλεσμα της σύγκρισης στον ακόλουθο κώδικα:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 !== emp2);
Πείτε ποιο θα είναι το αποτέλεσμα της σύγκρισης στον ακόλουθο κώδικα:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = emp1;
emp2.name = 'eric';
console.log(emp1 === emp2);