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