Sammenligning af objekter i OOP i JavaScript

Lad os se på, hvordan variabler, der indeholder objekter, sammenlignes. To variabler vil blive betragtet som lige, hvis de indeholder en reference til det samme objekt. Lad os se på det i praksis. Lad os sige, at vi har følgende klasse:

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

Lad os oprette to objekter af denne klasse:

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

Lad os sammenligne variabler, der indeholder reference til det samme objekt:

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

Og lad os nu sammenligne variabler, der indeholder reference til forskellige objekter:

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

Forklar, hvad resultatet af sammenligningen i følgende kode vil være:

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

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

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

Forklar, hvad resultatet af sammenligningen i følgende kode vil være:

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

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

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

Forklar, hvad resultatet af sammenligningen i følgende kode vil være:

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

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

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

Forklar, hvad resultatet af sammenligningen i følgende kode vil være:

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

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

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

Forklar, hvad resultatet af sammenligningen i følgende kode vil være:

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

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

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

Forklar, hvad resultatet af sammenligningen i følgende kode vil være:

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

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

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

Forklar, hvad resultatet af sammenligningen i følgende kode vil være:

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

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

console.log(emp1 === emp2);