Skip to content

Commit 9998f5a

Browse files
committed
jinyoung/9 클래스 실습 완료
1 parent 3627c80 commit 9998f5a

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed
+101
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
class JavaScriptDeepStudy {
2+
constructor () {
3+
// 인스턴스를 따로 만들어서 인자에 필드 값을 넣어줘야하는 줄 알았는데 default 값으로 설정하는 것이었다..
4+
this.member = ["최정혜","손진영","김영주","김현지","윤한영","조진혁"]
5+
this.book = "자바스크립트 완벽가이드";
6+
this.sequence = [
7+
"1.checking Time",
8+
"2. Test Time",
9+
"3. Q&A Time",
10+
"4. Killing Time",
11+
"5. Revieew Time",
12+
"6. Next Time"
13+
];
14+
this.state = "진행중"
15+
// 정혜님 좋아하는 과일은 default 값으로 설정해야 했다..! ㅜ
16+
this.JungHyeFavFruit = "strawbarry";
17+
}
18+
19+
get isState() {
20+
return (
21+
console.log(this.state + "입니다. 만약 완료를 원한다면 setState 함수를 이용해주세요.")
22+
)
23+
}
24+
25+
// 완료 state도 있어야할거 같았고 한번 완료 되면 변경되지 않으니 이렇게 구성했습니다.
26+
get setState() {
27+
this.state = "완료";
28+
return (console.log(this.state+ "중인 상태로 변경되었습니다."))
29+
}
30+
31+
// Array 관련 메서드가 안먹혀서 for, if문으로 대체했습니다.
32+
// 리팩토링이 필요한 코드이니 조언 해주시면 감사드리겠습니다..!
33+
get isMember() {
34+
let memberCount = false;
35+
for(let i = 0; i < this.member.length; i++) {
36+
if(this.name === this.member[i]) {
37+
return console.log(true);
38+
} else {
39+
count = true;
40+
}
41+
}
42+
if(memberCount) {
43+
console.log("존재하지 않는 멤버입니다.");
44+
}
45+
}
46+
}
47+
48+
class Person extends JavaScriptDeepStudy {
49+
constructor (name, gender, age, favoriteLng, favFruit) {
50+
// 자식 클래스는 초기화 + 부모에 있는 필드들을 가져오기 위해 super() 해줘야 함
51+
super();
52+
this.name = name;
53+
this.gender = gender;
54+
this.age = age;
55+
this.favoriteLng = favoriteLng;
56+
this.favFruit = favFruit;
57+
}
58+
59+
// 모든 메서드 인자 넣어줄 필요 없으니 getter로 설정
60+
get isTwentyfive() {
61+
if(this.age+1 > 25 && typeof this.age === 'number') {
62+
return console.log(true);
63+
} else {
64+
return console.log(false);
65+
}
66+
}
67+
get twoYearsAgoAge() {
68+
if(typeof this.age === 'number') {
69+
return console.log(this.age - 2);
70+
} else {
71+
return console.log("숫자로 입력해주세요:)");
72+
}
73+
}
74+
// 그래서 이 메서드도 Person 클래스에 있는 favFruit랑 부모 클래스에 있는
75+
// jungHyeFavFruit와 비교해야했다.
76+
get isEqualFruit() {
77+
if(this.favFruit === this.JungHyeFavFruit) {
78+
return console.log(true);
79+
} else {
80+
return console.log(false);
81+
}
82+
}
83+
}
84+
85+
let jinyoung = new Person("손진영", "man", 25, "typescript", "strawbarry");
86+
let namju = new Person("김남주", "man", "23", "c", "melon");
87+
88+
jinyoung.isEqualFruit;
89+
jinyoung.twoYearsAgoAge
90+
jinyoung.isTwentyfive
91+
jinyoung.isMember
92+
jinyoung.isState
93+
jinyoung.setState
94+
console.log("----------------------------------");
95+
96+
// 위와 반대되는 결과
97+
98+
namju.isEqualFruit
99+
namju.twoYearsAgoAge
100+
namju.isTwentyfive
101+
namju.isMember

0 commit comments

Comments
 (0)