Porovnávanie objektov v OOP v JavaScripte

Pozrime sa, ako sa porovnávajú premenné obsahujúce objekty. Dve premenné budú považované za rovnaké, ak obsahujú odkaz na ten istý objekt. Pozrime sa na to v praxi. Majme nasledujúcu triedu:

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

Vytvorme dva objekty tejto triedy:

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

Porovnajme premenné obsahujúce odkaz na ten istý objekt:

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

A teraz porovnajme premenné, obsahujúce odkaz na rôzne objekty:

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

Povedzte, aký bude výsledok porovnania v nasledujúcom kóde:

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

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

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

Povedzte, aký bude výsledok porovnania v nasledujúcom kóde:

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

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

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

Povedzte, aký bude výsledok porovnania v nasledujúcom kóde:

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

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

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

Povedzte, aký bude výsledok porovnania v nasledujúcom kóde:

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

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

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

Povedzte, aký bude výsledok porovnania v nasledujúcom kóde:

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

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

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

Povedzte, aký bude výsledok porovnania v nasledujúcom kóde:

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

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

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

Povedzte, aký bude výsledok porovnania v nasledujúcom kóde:

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

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

console.log(emp1 === emp2);