Сравнение объектов в ООП в 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);