JS this reference Error

canyi·2023년 7월 26일
0

JavaScript

목록 보기
2/4

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

**예시코드

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

만약 this를 사용하지 않고 프로퍼티에 접근하려 한다면, javascript는 전역 객체에서 해당 이름의 변수나 프로퍼티를 찾습니다. 예시코드에서 프로퍼티를 전역 객체에 정의하지 않았으므로, 이 경우 ReferenceError가 발생합니다. ReferenceError가 발생하는 이유는 전역 객체에서 birthday과 pId라는 이름의 변수가 정의되지 않았기 때문입니다.

올바르게 동작하게 하려면 fullId 메소드에서 프로퍼티에 this를 사용하여 접근해야 합니다. 그렇게 하면 person 객체의 birthday와 pId 프로퍼티를 참조할 수 있습니다.

var person = {
    name: "홍길동",
    birthday: "030219",
    age: 30,
    pId: "1234567",
    fullId: function() {
        // 'this' 키워드를 사용하여 person 객체의 프로퍼티에 접근
        return this.birthday + this.pId;
    },
};

console.log(person.fullId()); // 이제 정상적으로 "0302191234567"을 출력합니다.

Github: https://github.com/Canyi0304/JS_undefindVSnull/blob/main/this_referenceError.js

profile
백엔드 개발 정리

0개의 댓글