*배우는과정이므로 잘못된 내용이 있을 수 있습니다.
** 잘못된 내용은 코멘트 주시면 바로 수정하겠습니다.
프로그래밍 언어에는 3가지 타입이 있다.
1. Machine Languages : 기계어. 010101로 이루어져 있는 기계가 사용하는 언어다.
2. Assembly Languages: 어셈블리어.
3. High-Level Languages: javascript, python등.
High-Level에 가까워질수록 사람의 언어와 가까워진다. 컴파일 과정을 통해서 기계어로 변경된다.
고급언어는 절차지향적 언어와, 객체지향적 언어가 있다.
1. Procedural Language : C, Cobol ...
스텝바이스텝. 한번에 하나씩 처리하면서 진행한다. 구조를 잘 짜야한다.
2. Object- Oriented Language : Java, C++, C#,Python,Javascript ...
Object( Property, Method ) 를 한개 만들어 놓고, 계속 또 써먹는다. 어느위치에서나 호출할 수 있다.
직관적인 설명의 그림이다. 가장 기본이 되는 Object를 만들어 놓고, 새롭게 선언하면 Audi, Nissan, Volve 인스턴스가 만들어진다.
ES6코드
class Car{
constructor(name){
this.name = name // 값을 미지정시 파라미터가 필요하다.
this.speed = 10 // 값을 지정시 파라미터 불필요.
}
}
let volvo = new Car("volvo") // Car{name:"volve"}
즉 Car라는 Class(= Object)를 통해서, 아우디,닛산,볼보를 만들어낼 수 있는것이다. 여기에서는 속성값으로 이름만 주었기 때문에 이름만 다른 인스턴스가 생성된다. 인스턴스란, 클래스를 통한 복제본을 의미하며 Object의 형태 { }를 가진다. 다시 정리하자면, Car클래스를 통해 이름이 아우디,닛산,볼보인 인스턴스를 생성한 것이다.
또다른 예시이며 좀 더 복잡하다. 위에서는 속성만 주었지만, 아래 예시에서는 Method까지 부여하고 있다. Method란, 클래스 안에서의 '행동'이다.
클래스,인스턴스,객체에 대한 보다 상세한 개념은 하단 블로그에 잘 설명되어 있다.
https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html
OOP는 4가지 특성이 있다.
(OOP : object oriented programming)
1. Encapsulation
2. Abstraction
3. Inheritance
4. Polymorphism
var Human = function(name){
this.name = name
}
Human.prototype.sleep = function(){};
var steve = new Human('steve')
#레퍼런스
댓글