JavaScript OOP에서 메서드와 속성 이름 충돌

속성과 메서드의 이름은 서로 일치해서는 안 되며, 그렇지 않으면 충돌이 발생합니다. 예제를 통해 살펴보겠습니다. 다음과 같은 클래스가 있다고 가정해 보겠습니다.

javascriptclass User {
  name() {
    console.log('method');
  }
}

이 클래스의 객체를 생성해 보겠습니다.

javascriptlet user = new User;

메서드를 호출하면, 지금은 작동합니다.

javascriptuser.name(); // works

이제 같은 이름의 속성에 데이터를 기록하여 메서드의 코드를 덮어씁니다.

javascriptuser.name = 'str';
user.name(); // error

이러한 충돌을 방지하려면 항상 메서드에는 동사 이름을, 속성에는 명사 이름을 지정하세요.

Задание 1

다음 코드에서 발생한 오류를 수정하세요.

javascriptclass Employee {
  constructor(salary) {
    this.salary = salary;
  }
  salary() {
    return this.salary + '
;
  }
}