객체지향 프로그래밍 교육과정은 1. 문법 2. 설계 - 추상화 능력이 필요로 된다
부품화 - 객체를 하나의 부품처럼 사용
은닉화, 캡슐화 - 내부의 동작 방법을 객체에 숨기고 사용방법만을 노출
인터페이스 - 부품과 부품을 서로 교환할 수 있어야 한다
객체 - 서로 연관된 변수와 함수를 그룹화
var Person = {}
Person.name = 'egoing' // 속성
Person.introduce = function(){} // 메소드
생성자 - 객체를 만드는 역할을 하는 함수
var p = new Person();
new - 새로운 객체를 만든 후 이를 리턴
전역 객체
func();
window.func(); // 모든 전역변수와 함수는 사실 windows 객체의 속성이다.
둘 모두 함수 호출 시 실행
자바스크립트에서 모든 객체는 기본적으로 전역변수의 속성임을 알 수 있다.
this는 함수 내에서 함수를 어떻게 호출하냐에 따라서 this가 가리키는 대상이 달라진다.
메소드 호출
var o = {
func : function(){
if( o === this){ //this -> 객체의 소속인 메소드의 this는 그 객체를 가리킨다
document.write("o===this");
}
}
}
o.func();
생성자 호출
var funcThis = null;
function Func(){
funcThis = this;
}
var o1 = new func(); //일반 함수로 호출 ->함수로 사용할 때는 this값이 window를 가리킨다
if(funcThis === window){
}
var o2 = new func(); //생성자로 호출 -> 생성자로 사용할 때는 this값이 생성될 객체를 가리킨다
if(funcThis === o2){
}
함수의 메소드 apply, call을 이용하여 this의 값을 제어할 수 있다
func.apply(o);
상속
function A(a){
}
function B(a){
}
B.prototype = new A();
prototype(원형) - 상속의 구체적인 수단
prototype에 저장된 속성들은 생성자를 통해서 객체가 만들어질 때 그 객체에 연결한다
표준 내장 객체 - 자바스크립트가 기본적으로 가지고 있는 객체들
Object, Function, Array, String, Boolean, Number, Math, Date, RegExp
Object 객체 - 객체의 가장 기본적인 형태를 가지고 있는 객체
자바스크립트의 모든 객체는 Object 객체를 상속받는다.
Object 확장하면 모든 객체가 접근할 수 있는 API를 만들 수 있다
Object.Prototype.contain = function(needle){
for(var name in this){
if(this[name]===needle){
return true;
}
}
return false;
}
-> Object 객체는 확장하지 않는 것이 바람직 하다 모든 객체에 영향을 주기 때문에
원시 데이터 타입 - 객체가 아닌 데이터 타입
숫자, 문자열, Boolean, null, undefined
객체 데이터 타입
저 위 5개 빼고 모두
Wrapper 객체 - 원시 데이터 행을 객체처럼 다룰 수 있도록 하기 위한 객체
String, Number, Boolean
이렇게 자바스크립트라는 언어에 대해서 간단히 살펴봤다. 이거를 공부하기 전에 자바라는 프로그래밍 언어를 공부했어서 객체지향이나 함수를 사용하는 부분에서 크게 어렵게 느껴지진 않았다
'Javascript > Node.js' 카테고리의 다른 글
Postman (0) | 2021.04.16 |
---|---|
Express (0) | 2021.04.16 |
[Sequelize] Sequelize로 postgresql 다루기 (0) | 2020.03.30 |
[JavaScript] 함수지향 (0) | 2020.02.23 |
[JavaScript] 자바스크립트 기본 (0) | 2020.02.22 |