Comparación de objetos en POO en JavaScript

Veamos cómo se comparan las variables que contienen objetos. Dos variables se considerarán iguales si contienen una referencia al mismo objeto. Veámoslo en la práctica. Supongamos que tenemos la siguiente clase:

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

Creemos dos objetos de esta clase:

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

Comparemos variables que contienen una referencia al mismo objeto:

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

Y ahora comparemos variables que contienen referencias a diferentes objetos:

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

Explica cuál será el resultado de la comparación en el siguiente código:

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

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

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

Explica cuál será el resultado de la comparación en el siguiente código:

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

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

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

Explica cuál será el resultado de la comparación en el siguiente código:

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

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

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

Explica cuál será el resultado de la comparación en el siguiente código:

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

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

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

Explica cuál será el resultado de la comparación en el siguiente código:

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

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

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

Explica cuál será el resultado de la comparación en el siguiente código:

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

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

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

Explica cuál será el resultado de la comparación en el siguiente código:

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

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

console.log(emp1 === emp2);