Perbandingan Objek dalam OOP di JavaScript

Mari kita lihat bagaimana variabel yang berisi objek dibandingkan. Dua variabel akan dianggap sama jika mereka berisi referensi ke objek yang sama. Mari kita lihat dalam praktik. Misalkan kita memiliki kelas berikut:

javascriptclass User {
  constructor(name) {
    this.name = name;
  }
}

Mari buat dua objek dari kelas ini:

javascriptlet user1 = new User('1');
let user2 = new User('2');

Mari bandingkan variabel yang berisi referensi ke objek yang sama:

javascriptconsole.log(user1 === user1); // true

Dan sekarang mari bandingkan variabel, yang berisi referensi ke objek yang berbeda:

javascriptconsole.log(user1 === user2); // false
Задание 1

Jelaskan, apa hasil dari perbandingan dalam kode berikut:

javascriptclass Employee {
  constructor(name) {
    this.name = name;
  }
}

let emp1 = new Employee('john');
let emp2 = new Employee('eric');

console.log(emp1 === emp2);
Задание 2

Jelaskan, apa hasil dari perbandingan dalam kode berikut:

javascriptclass Employee {
  constructor(name) {
    this.name = name;
  }
}

let emp1 = new Employee('john');
let emp2 = new Employee('eric');

console.log(emp1 === emp1);
Задание 3

Jelaskan, apa hasil dari perbandingan dalam kode berikut:

javascriptclass Employee {
  constructor(name) {
    this.name = name;
  }
}

let emp1 = new Employee('john');
let emp2 = new Employee('john');

console.log(emp1 === emp2);
Задание 4

Jelaskan, apa hasil dari perbandingan dalam kode berikut:

javascriptclass Employee {
  constructor(name) {
    this.name = name;
  }
}

let emp1 = new Employee('john');
let emp2 = new Employee('eric');

console.log(emp1 !== emp1);
Задание 5

Jelaskan, apa hasil dari perbandingan dalam kode berikut:

javascriptclass Employee {
  constructor(name) {
    this.name = name;
  }
}

let emp1 = new Employee('john');
let emp2 = emp1;

console.log(emp1 === emp2);
Задание 6

Jelaskan, apa hasil dari perbandingan dalam kode berikut:

javascriptclass Employee {
  constructor(name) {
    this.name = name;
  }
}

let emp1 = new Employee('john');
let emp2 = new Employee('eric');

console.log(emp1 !== emp2);
Задание 7

Jelaskan, apa hasil dari perbandingan dalam kode berikut:

javascriptclass Employee {
  constructor(name) {
    this.name = name;
  }
}

let emp1 = new Employee('john');
let emp2 = emp1;
emp2.name = 'eric';

console.log(emp1 === emp2);