class Students {
constructor (name, scoreA, scoreB) {
this.name = name;
this.scoreA = scoreA;
this.scoreB = scoreB;
}
sum () {
return (this.scoreA + this.scoreB);
}
info () {
return `name: ${this.name}, total: ${this.sum()}`;
}
}
var stu001 = new Students('mina', 100, 70);
var stu002 = new Students('lily', 90, 60);
console.log(stu001); // Students { name: 'mina', scoreA: 100, scoreB: 70 }
console.log(stu002); // Students { name: 'lily', scoreA: 90, scoreB: 60 }
console.log(stu001.sum()); // 170
console.log(stu002.sum()); // 150
console.log(stu001.info()); // name: mina, total: 170
console.log(stu002.info()); // name: lily, total: 150
// stu002.sum 변경
stu002.sum = function () {
return (this.scoreA + this.scoreB + 10);
}
console.log(stu002.info()); // name: lily, total: 160
자바스크립트 class 강의를 보고 만든 예제
class 기능은 es6 부터 추가된 기능이라고 한다.
말이 기능이지 사실은 흉내내는 것이라고 한다.
https://www.opentutorials.org/module/4047/24616
super 예제
class Students {
constructor (name, scoreA, scoreB) {
this.name = name;
this.scoreA = scoreA;
this.scoreB = scoreB;
}
sum () {
return (this.scoreA + this.scoreB);
}
}
class ExtentionStudents extends Students {
constructor (name, scoreA, scoreB, scoreC) {
super(name, scoreA, scoreB);
this.scoreC = scoreC;
}
total () {
return (super.sum() + this.scoreC);
}
}
var stu004 = new ExtentionStudents('rose', 100, 80, 60);
console.log(stu004); // { name: 'rose', scoreA: 100, scoreB: 80, scoreC: 60 }
console.log(stu004.total()); // 240
'programming > javascript' 카테고리의 다른 글
prettier html 적용 끄기(mac vscode) (0) | 2019.09.05 |
---|---|
closure, callback 예시 만들기 (0) | 2019.08.29 |
생활코딩 자바스크립트 this, prototype 강의를 보고 만든 예제 (0) | 2019.08.24 |
Mac os brew 이용 nodejs 설치하기 (0) | 2019.08.23 |
node js mysql 연동 에러 (0) | 2019.03.05 |