การเปรียบเทียบอ็อบเจกต์ใน OOP ใน JavaScript
ลองมาดูวิธีการเปรียบเทียบตัวแปร ที่เก็บอ็อบเจกต์กัน ตัวแปรสองตัวจะถือว่าเท่ากัน หากพวกมันเก็บ reference ไปยังอ็อบเจกต์ เดียวกัน มาดูในทางปฏิบัติกัน สมมติว่าเรามีคลาสต่อไปนี้:
class User {
constructor(name) {
this.name = name;
}
}
มาสร้างอ็อบเจกต์สองตัว ของคลาสนี้:
let user1 = new User('1');
let user2 = new User('2');
ลองเปรียบเทียบตัวแปรที่เก็บ reference ไปยังอ็อบเจกต์เดียวกัน:
console.log(user1 === user1); // true
ทีนี้ลองเปรียบเทียบตัวแปร ที่เก็บ reference ไปยังอ็อบเจกต์ที่ต่างกัน:
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);