작성
·
222
1
class family {
member (a){
this.name=a
console.log("member의 이름은 "+ this.name+"입니다.")
}
member (a,b){
this.name=a
this.age=a
console.log("member의 이름은 "+ this.name+"입니다.")
console.log("member의 나이는 "+ this.age+"입니다.")
}
member (a,b,c){
this.name=a
this.job=b
this.age=c
console.log("member의 이름은 "+ this.name+"입니다.")
console.log("member의 직업은 "+ this.job+"입니다.")
console.log("member의 나이는 "+ this.age+"입니다.")
}
}
const familymember = new family();
familymember.member("승현",20);
familymember.member("다연","학생",22);
위 코드를 실행시키면 오버로딩되어 첫번째 는
member의 이름은 승현입니다. member의 나이는 20입니다.
위 코드를 실행시키면 오버로딩되어 두번째 는
member의 이름은 다연입니다. member의 직업은 학생입니다. member의 나이는 20입니다.
로 출력되어야 하는거 아닌가요>?? 위처럼 실행시키면
member의 이름은 다연입니다. member의 직업은 학생입니다. member의 나이는 undefined입니다.
member의 이름은 다연입니다. member의 직업은 학생입니다. member의 나이는 20입니다.
로 나옵니다.!
답변 1
1
안녕하세요 주연님 ㅎㅎ
자바스크립트는 오버로딩을 지원하지 않습니다.
만약 오버로딩을 하실 거면 받아오는 매개변수의 길이 arguments.length를 기반으로 구축하거나 매개변수마다 if문을 걸어서 구현하셔야 합니다.
제가 주연님 코드를 한번 수정해봤는데요. 참고부탁드립니다.
class family {
member(a, b, c) {
this.name = a
console.log("member의 이름은 " + this.name + "입니다.")
if (b) {
this.job = b
console.log("member의 직업은 " + this.job + "입니다.")
}
if (c) {
this.age = c
console.log("member의 나이는 " + this.age + "입니다.")
}
}
}
const familymember = new family();
familymember.member("승현", 20);
familymember.member("다연", "학생", 22);
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.