오늘의 목표
js클래스
01 생성자 함수
02 this
오늘은 드디어.. 금요일.. 하.. 하얗게 불태웠다..
정말...출퇴근길 왜 힘들까... 진짜..
어유 언넝 집에 와서 강의 듣자 하고 달려왔다
클래스는 스타벅스 예제할 때도 썼었지. 그래서 눈에도 손에도 많이 익었다.
(참.. 개발자들은 대단해.. 자바 안에 있는 여러 방식으로 정리하는 방법도, 태그 종류도, 함수 내용도 다 다르고 이것저것 너무너무 많다..)
this 는 뭘까?
this는 인스턴스의 자기자신을 의미하며 인스턴스화 되었을 때 자기자신의 메모리 주소를 담고있는 키워드다.
this 키워드의 역할 3가지
1) 자기 자신의 메모리를 가르킨다.
main 함수에서 EX1_Fruit 객체를 하나 생성한 후 과일 고유번호, 과일 이름을 Setter를 통해 값을 입력했다고 가정할 때,
과일의 정보를 저장하는 EX1_Fruit 클래스에서 멤버 변수를 선언한 이후 Setter를 설정할 때 this.변수명 = 매개 변수 명으로 지정한다.
이때 this 키워드는 자기 자신의 메모리를 가르키기 때문에 멤버변수의 fruitNo랑 동일한 의미가 된다.
*this를 사용하지 않으면?
매개변수 이름과 대입하는 이름이 똑같기 때문에 구분할 수 없어서 제대로 값이 입력되지 않는다.
매개변수의 이름을 멤버 변수와 다른 이름으로 설정한다면 this 키워드를 쓰지 않아도 된다.
하지만 가독성을 위해 매개 변수 명과 멤버 변수를 동일하게 쓰는것을 권장하고 있다.
2) 생성자에서 다른 생성자를 호출할 경우 사용한다.
과일의 정보를 저장하는 EX2_Fruit 클래스에서 매개 변수가 없는 생성자, 매개 변수가 있는 생성자 2개를 생성한 후 매개 변수가 없는 생성자에 this 키워드를 이용하여 값을 넣을 경우 매개 변수가 있는 생성자를 참조하여 메인 함수에서 생성자를 호출할 때 해당 값이 자동으로 대입된다.
1) 메인 함수에서 객체를 생성하고 값을 대입하지 않고 출력할 경우 자동으로 생성자에서 대입 된 값이 출력되는것을 확인할 수 있다.
2) 생성자를 호출할 때 값을 대입하면 대입된 값으로 출력된것을 확인할 수 있다.
3) 매개 변수가 없는 생성자에서 this를 사용하여 다른 생성자를 호출할 경우 해당 구문이 첫번째 구문이 되어야 한다.
this 키워드 위에 다른 구문을 작성할 경우 에러가 발생한다.
3) 인스턴스 자신의 주소를 반환할 때 사용한다.
EX3_Fruit 클래스에서 반환 타입을 EX3_Fruit로 설정한 getSelf 메서드에서 반환 시 this를 반환한다.
메인 함수에서 EX3_Fruit 객체를 생성하고 해당 객체 정보 출력 및 test 객체를 하나 더 만들어서 해당 객체에 이전에 생성한 객체의 this 반환 값을 대입한다.
출력할 경우 같은 값이 출력되는것을 확인할 수 있다.
this가 가르치는 위치와 생성된 객체가 가르치는 위치가 같은 것을 확인할 수 있다.
오늘 this 라는 키워드도 처음 알았다.
위와 같은 파인드, 인덱스 포위치 등등의 배열 내부에서 지금까지 배운 프로토타입이라는 개념으로 만들어져 있는 메소드들이다.
아이고 아직도 배울 게 너무 많이 남았다//..!! 정신 집주우웅!! 천천히 다 익히는 거야.. 안되면 또 해보고 안되면 또 해보고 반복해서 해보고 그르자,, 아쟈..!
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완 #프론트엔드
'Study > Frontend_study' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 46일차 미션 (3월 17일) : 프론트엔드개발 강의 후기 (0) | 2024.03.17 |
---|---|
패스트캠퍼스 환급챌린지 45일차 미션 (3월 16일) : 프론트엔드개발 강의 후기 (0) | 2024.03.16 |
패스트캠퍼스 환급챌린지 43일차 미션 (3월 14일) : 프론트엔드개발 강의 후기 (0) | 2024.03.14 |
패스트캠퍼스 환급챌린지 42일차 미션 (3월 13일) : 프론트엔드개발 강의 후기 (0) | 2024.03.13 |
패스트캠퍼스 환급챌린지 41일차 미션 (3월 12일) : 프론트엔드개발 강의 후기 (0) | 2024.03.12 |