Js에서 this.를 안붙일시 레퍼런스 에러

Joy·2023년 7월 27일
0

230726(수)
문제 : this. 를 안 붙이면 reference Error가 뜨는데
위에 선언을 했음에도 불구하고 왜 에러가 뜨는지 원인 찾아보기

예시 코드

var person = {
    name: “홍길동“,      // 이름 프로퍼티를 정의함.
    birthday: “030219”,  // 생년월일 프로퍼티를 정의함.
    age: 30,
    pId: “1234567",      // 개인 id 프로퍼티를 정의함.
    fullId: function() { // 생년월일과 개인 id를 합쳐서 주민등록번호를 반환함.
        return this.birthday + this.pId;
    },
};

Js에서 this. 를 안 붙이면 reference Error가 뜨는 이유 : this가 객체를 참조하지 않기 때문.
예를 들어, 위의 코드에서 fullId 함수에서 this.birthday와 this.pId를 사용하고 있음.
하지만 fullId 함수가 호출될 때 this는 person 객체를 참조하지 않고 전역 객체를 참조함.
따라서 전역 객체에 birthday와 pId 프로퍼티가 없기 때문에 reference Error가 발생한다.

여기서 더 나아가
this를 사용하지 않고 객체의 프로퍼티에 접근하는 방법은?

자바스크립트에서 객체의 프로퍼티에 접근하는 방법은 두 가지가 있다.
1. 객체명.프로퍼티명을 이용하는 것
2. 객체명[‘프로퍼티명’]을 이용하는 것

예를 들어, 다음과 같은 객체가 있다면 :

var user = {
  name: 'Jane',
  age: 20,
  city: 'Seoul'
};

객체의 프로퍼티에 접근하는 방법은 다음과 같다 :

person.name; // Jane
person['name']; // Jane

이렇게 두 가지 방법 모두 사용할 수 있다.

0개의 댓글