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