Objektumok összehasonlítása az OOP-ban JavaScriptben

Nézzük meg, hogyan hasonlítjuk össze az objektumokat tartalmazó változókat. Két változó akkor tekinthető egyenlőnek, ha ugyanarra az objektumra mutató hivatkozást tartalmaznak. Nézzük meg a gyakorlatban. Tegyük fel, hogy van a következő osztályunk:

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

Hozzunk létre két objektumot ebből az osztályból:

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

Hasonlítsuk össze az ugyanarra az objektumra mutató változókat:

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

Most pedig hasonlítsuk össze a különböző objektumokra mutató változókat:

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

Mondd el, mi lesz az eredménye a következő kód összehasonlításának:

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

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

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

Mondd el, mi lesz az eredménye a következő kód összehasonlításának:

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

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

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

Mondd el, mi lesz az eredménye a következő kód összehasonlításának:

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

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

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

Mondd el, mi lesz az eredménye a következő kód összehasonlításának:

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

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

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

Mondd el, mi lesz az eredménye a következő kód összehasonlításának:

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

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

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

Mondd el, mi lesz az eredménye a következő kód összehasonlításának:

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

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

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

Mondd el, mi lesz az eredménye a következő kód összehasonlításának:

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

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

console.log(emp1 === emp2);