So sánh các đối tượng trong OOP trong JavaScript
Hãy xem cách các biến chứa đối tượng được so sánh. Hai biến sẽ được coi là bằng nhau nếu chúng chứa tham chiếu đến cùng một đối tượng. Hãy xem thực tế. Giả sử chúng ta có lớp sau:
class User {
constructor(name) {
this.name = name;
}
}
Tạo hai đối tượng của lớp này:
let user1 = new User('1');
let user2 = new User('2');
So sánh các biến chứa tham chiếu đến cùng một đối tượng:
console.log(user1 === user1); // true
Bây giờ hãy so sánh các biến chứa tham chiếu đến các đối tượng khác nhau:
console.log(user1 === user2); // false
Cho biết kết quả so sánh trong đoạn mã sau:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 === emp2);
Cho biết kết quả so sánh trong đoạn mã sau:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 === emp1);
Cho biết kết quả so sánh trong đoạn mã sau:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('john');
console.log(emp1 === emp2);
Cho biết kết quả so sánh trong đoạn mã sau:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 !== emp1);
Cho biết kết quả so sánh trong đoạn mã sau:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = emp1;
console.log(emp1 === emp2);
Cho biết kết quả so sánh trong đoạn mã sau:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 !== emp2);
Cho biết kết quả so sánh trong đoạn mã sau:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = emp1;
emp2.name = 'eric';
console.log(emp1 === emp2);