Perbandingan Objek dalam OOP dalam JavaScript

Mari kita lihat bagaimana pemboleh ubah yang mengandungi objek dibandingkan. Dua pemboleh ubah akan dianggap sama, jika mereka mengandungi rujukan kepada objek yang sama. Mari kita lihat secara praktik. Katakan kita mempunyai kelas berikut:

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

Mari buat dua objek kelas ini:

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

Bandingkan pemboleh ubah yang mengandungi rujukan kepada objek yang sama:

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

Sekarang bandingkan pemboleh ubah, yang mengandungi rujukan kepada objek yang berbeza:

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

Beritahu, apakah hasil perbandingan dalam kod berikut:

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

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

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

Beritahu, apakah hasil perbandingan dalam kod berikut:

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

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

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

Beritahu, apakah hasil perbandingan dalam kod berikut:

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

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

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

Beritahu, apakah hasil perbandingan dalam kod berikut:

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

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

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

Beritahu, apakah hasil perbandingan dalam kod berikut:

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

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

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

Beritahu, apakah hasil perbandingan dalam kod berikut:

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

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

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

Beritahu, apakah hasil perbandingan dalam kod berikut:

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

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

console.log(emp1 === emp2);