Compararea obiectelor în OOP în JavaScript

Să vedem cum se compară variabilele care conțin obiecte. Două variabile vor fi considerate egale, dacă ele conțin o referință către același obiect. Să vedem în practică. Să presupunem că avem următoarea clasă:

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

Să creăm două obiecte ale acestei clase:

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

Să comparăm variabilele care conțin referința către același obiect:

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

Acum să comparăm variabilele, care conțin referința către obiecte diferite:

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

Spuneți care va fi rezultatul comparării în următorul cod:

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

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

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

Spuneți care va fi rezultatul comparării în următorul cod:

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

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

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

Spuneți care va fi rezultatul comparării în următorul cod:

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

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

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

Spuneți care va fi rezultatul comparării în următorul cod:

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

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

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

Spuneți care va fi rezultatul comparării în următorul cod:

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

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

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

Spuneți care va fi rezultatul comparării în următorul cod:

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

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

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

Spuneți care va fi rezultatul comparării în următorul cod:

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

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

console.log(emp1 === emp2);