일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- max MySQL
- 자바스크립트
- 생활코딩
- 한글잘림
- 황반석 옮김
- jquery 사용하기
- 배열 분해 할당
- python tkinter 인터페이스
- SwiftUI 기반의 iOS 프로그래밍
- 한글입력 씹힘
- 제이쿼리연결
- 자바스크립트 객체 만들기
- 제이펍 출판
- 한글입력 오류
- 자바스크립트 배열 할당
- 비주얼스튜디오 코드
- python GUI 사용하기
- 한글입력 안됨
- 블록 스코프
- 객체
- 자바스크립트 객체
- max apache
- 맥 아파치
- 한글입력 잘림
- 핵심만 골라 배우는 SwiftUI 기반의 iOS 프로그래밍
- 맥 mysql
- 객체지향
- 자바스크립트 class
- 기획자랑 사이좋게 지내고 싶다
- 닐 스미스 지음
Archives
- Today
- Total
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- max MySQL
- 자바스크립트
- 생활코딩
- 한글잘림
- 황반석 옮김
- jquery 사용하기
- 배열 분해 할당
- python tkinter 인터페이스
- SwiftUI 기반의 iOS 프로그래밍
- 한글입력 씹힘
- 제이쿼리연결
- 자바스크립트 객체 만들기
- 제이펍 출판
- 한글입력 오류
- 자바스크립트 배열 할당
- 비주얼스튜디오 코드
- python GUI 사용하기
- 한글입력 안됨
- 블록 스코프
- 객체
- 자바스크립트 객체
- max apache
- 맥 아파치
- 한글입력 잘림
- 핵심만 골라 배우는 SwiftUI 기반의 iOS 프로그래밍
- 맥 mysql
- 객체지향
- 자바스크립트 class
- 기획자랑 사이좋게 지내고 싶다
- 닐 스미스 지음
Archives
- Today
- Total
java,javascript,android,php,sql,공부용,메모용
클래스 class / ES2015 & ES6 - 06 본문
javascript, jQuery & Node.js/Node.js 사용전 자바스크립트
클래스 class / ES2015 & ES6 - 06
yy_dd2 2022. 12. 7. 23:04반응형
자바스크립트의 클래스는 프로토타입 기반으로 동작한다
자바스크립트의 프로토타입 (prototype) 이해
프로토타입 뜻은 무언가를 만드는 과정에서 시험용으로 만들어보는 것을 의미함
자바스크립트는 클래스라는 개념이 없어서 기존 객체를 복사하여 새로운 객체를 생성하는 프로토타입 기반의 언어이다.
자바스크립트의 클래스는 프로토타입 기반 문법을 보기 좋게 클래스롤 바꾼 것
// 기존 생성자 함수
const User = function(name, age){
this.name = name;
this.age = age;
this.showName = function () {
console.log(this.name);
};
};
const mike = new User("Mike", 30);
//가 아래 Class 와 동일하게 사용되도록 변경
const User = function(name, age){
this.name = name;
this.age = age;
// this.showName = function () {
// console.log(this.name);
// };
};
User.prototype.showName = function(){
console.log(this.name);
};
const mike = new User("Mike", 30);
// ES6 Class 사용
class User2 {
constructor(name, age){
this.name = name;
this.age = age;
}
showName(){
console.log(this.name);
}
}
const tom = new User2("Tom", 19);
// 문법만 간단한게 바뀐게 아니고
for(const p in mike){
console.log(p);
}
// 하면 name, age, showName을 모두 보여주는데
// 프로토타입에 포함된 프로퍼티를 모두 보여주고
// 객체가 가진 프로퍼티만 쓰기 위해서는 다른 과정을 거쳐야함
// 그러나 class를 사용하면 name, age만 나타남
for(const p in tom){
console.log(p);
}
// 상속 extends
class Car {
constructor(color){
this.color = color;
this.wheels = 4;
}
drive() {
console.log("drive..");
}
stop(){
console.log("STOP");
}
}
class WW extends Car {
park(){
console.log("PARK");
}
stop(){
super.stop(); // 메소드 오버라이딩(method overriding) 이렇게 사용하면 부모의 stop 사용함
console.log("OFF"); // 동일하면 덮어씌워짐
}
}
const z4 = new WW("blue");
console.log(z4);
console.log(z4.drive());
반응형
'javascript, jQuery & Node.js > Node.js 사용전 자바스크립트' 카테고리의 다른 글
async/await 사용하기 for await of 문법 / ES2017 & ES2018 - 08 (0) | 2022.12.08 |
---|---|
Promise 콜백함수 프로미스로 대처 / ES2015 & ES6 - 07 (0) | 2022.12.08 |
구조분해 할당 / ES2015 & ES6 - 05 (0) | 2022.11.16 |
화살표 함수 function을 화살표로 사용 => / ES2015 & ES6 - 04 (0) | 2022.05.06 |
객체 리터럴 / ES2015 & ES6 - 03 (0) | 2022.05.06 |
Comments