Objektu salīdzināšana OOP JavaScript

Paskatīsimies, kā tiek salīdzināti mainīgie, kas satur objektus. Divi mainīgie tiks uzskatīti par vienādiem, ja tie satur atsauci uz vienu un to pašu objektu. Paskatīsimies praksē. Pieņemsim, ka mums ir šāda klase:

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

Izveidosim divus objektus šīs klases:

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

Salīdzināsim mainīgos, kas satur atsauci uz vienu un to pašu objektu:

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

Tagad salīdzināsim mainīgos, kas satur atsauci uz dažādiem objektiem:

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

Pastāstiet, kāds būs rezultāts salīdzinājumā šādā kodā:

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

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

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

Pastāstiet, kāds būs rezultāts salīdzinājumā šādā kodā:

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

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

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

Pastāstiet, kāds būs rezultāts salīdzinājumā šādā kodā:

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

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

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

Pastāstiet, kāds būs rezultāts salīdzinājumā šādā kodā:

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

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

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

Pastāstiet, kāds būs rezultāts salīdzinājumā šādā kodā:

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

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

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

Pastāstiet, kāds būs rezultāts salīdzinājumā šādā kodā:

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

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

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

Pastāstiet, kāds būs rezultāts salīdzinājumā šādā kodā:

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

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

console.log(emp1 === emp2);