
개발자는 누구나 될 수 있지만 아무나 될 순 없다.....재원왈....ㅋㅎ 좀 멋있었다.
그런데 진짜 그런 것 같다! 누구나 시도 할 수는 있는데, 꾸준하게 오래하는 것이 쉬운것은 아니기 때문에 아무나 될 순 없다고 생각한다. 새벽 감성으로다가 저질러봤다.👊
아무튼 아무나가 되지 않기 위해! 배운 내용을 복습 겸 정리해보자.
객체지향.....class....instance.....기본중의 기본적인 내용은 확실히 하고 가즈아!!!!!!!!!!!🔥
class
- 객체(instance)를 찍어내는 틀
- class 내부에서 속성(변수)과 메소드(함수)로 객체(instance)를 정의한다.
instance
- class를 통해 나온 상품?
- 같은 class를 가지는 두개의 instance는 속성에 따라 서로 다른 값을 지닌다.
- 자료형에서 나온 참조형인 객체와 다른 개념이다.
- 인스턴스는 속성(변수)과 메소드(함수)로 이루어져 있다.
- 속성은 인스턴스의 특징점과 유사하고, 메소드는 객체가 실행하는 일(행동)과 유사하다.
Class 선언
- function으로 선언
function Car(brand, name, color) { // 인스턴스가 만들어질 때 실행되는 코드 };
- class로 선언
class Car() { constructor(brand, name, color) { // 인스턴스가 만들어질 때 실행되는 코드 } }
Instance 생성
- new 키워드
let avante = new Car(‘Hyundai’, ‘avante’, ‘black’); let mini = new Car(‘bmw’, ‘mini’, ‘white’);
인스턴스의 속성 정의 : this
- function
function Car(brand, name, color) { this.brand = brand; this.name = name; this.color = color; };
- class
class Car() { constructor(brand, name, color) { // constructor: 생성자함수 this.brand = brand; this.name = name; this.color = color; } }
인스턴스의 메소드 정의 : this
- function
function Car(brand, name, color) { Car.prototype.refuel = function () { /*연료 공급을 구현하는 코드*/} Car.prototype.drive = function () { /* 운전을 구현하는 코드 */} };
- class
class Car() { constructor(brand, name, color) { /* 속성 정의 생략*/} refuel() { /* 연료 공급을 구현하는 코드*/ } drive() { /* 운전을 구현하는 코드 */} }
prototype : class의 메소드를 만들때 사용
-> 빵틀로 찍어내는 상품들이 무슨 행동을 해야하는지 정의한다.
constructor : 인스턴스의 초기 속성값을 생성하는 생성자함수
->클래스에 매개변수가 전달되면 그 값으로 인스턴스의 첫 속성값이 설정되는 함수이다.
this : 자바스크립트의 this는 좀 다르다. 제쳐두고, 인스턴스에서 쓰임을 보면 new 키워드로 생성된 인스턴스의 내부 변수를 지칭한다. 자세한 내용은 글 아래 첨부한 두 번째 URL을 참고하자.
function abc(...arr) {
console.log(arr);
}
abc(1, 2, 3, 4, 5)
// OUTPUT : [1, 2, 3, 4, 5] 배열!!!!
function abc() {
console.log(arguments);
}
abc(1, 2, 3, 4, 5)
// OUTPUT : [1, 2, 3, 4, 5, function...] 유사객체배열!
function abc(str='leejaewon', num = 1) {
console.log(`${str} is only ${num}`)
}
abc();
// OUTPUT : leejaewon is only 1
기본적인 내용이지만 언어마다 약간의 차이가 존재할 수 있기 때문에 유심히 보는 것이 좋을 것 같다는 생각을 했다. 실무적이고 코드 중심으로 블로깅을 하는 것이 아니라 이론적인 내용을 중심으로 작성하고 있는데, 복잡한 개념도 차곡차곡 정리할 수 있는 좋은 시간들이라는 것을 느꼈다.
그렇다고 해서, 실습이 중요하지 않은 것은 절대 아니니 추석을 이용해서 하고 싶었던 실습을 진행하고 블로깅을 해봐야겠다!
[참고문서]
객체 지향 프로그래밍이 뭔가요? (꼬리에 꼬리를 무는 질문 1순위, 그놈의 OOP), 정아마추어 JEONG_AMATEUR, https://jeong-pro.tistory.com/95 2017. 11. 15. (접속일: 2020.09.23 03:55AM)
자바스크립트의 this는 무엇인가?, ZeroCho TV,https://www.zerocho.com/category/JavaScript/post/5b0645cc7e3e36001bf676eb 2년전 등록 (접속일: 2020.09.23 03:55AM)