JavaScript 객체 지향 프로그래밍에서 객체 비교

객체를 포함하는 변수를 어떻게 비교하는지 살펴보겠습니다. 두 변수는 동일한 객체에 대한 참조를 포함할 경우 동일한 것으로 간주됩니다. 실제 예를 통해 확인해 보겠습니다. 다음과 같은 클래스가 있다고 가정해 봅시다:

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

이 클래스의 두 객체를 생성하겠습니다:

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

동일한 객체에 대한 참조를 포함하는 변수를 비교하겠습니다:

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

이제 서로 다른 객체에 대한 참조를 포함하는 변수를 비교하겠습니다:

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

다음 코드에서 비교 결과가 어떻게 될지 설명하세요:

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

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

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

다음 코드에서 비교 결과가 어떻게 될지 설명하세요:

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

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

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

다음 코드에서 비교 결과가 어떻게 될지 설명하세요:

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

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

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

다음 코드에서 비교 결과가 어떻게 될지 설명하세요:

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

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

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

다음 코드에서 비교 결과가 어떻게 될지 설명하세요:

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

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

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

다음 코드에서 비교 결과가 어떻게 될지 설명하세요:

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

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

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

다음 코드에서 비교 결과가 어떻게 될지 설명하세요:

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

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

console.log(emp1 === emp2);