반응형

객체지향 프로그래밍(OOP)

 프로그램의 객체들과 객체 간의 소통으로 하는 것

 

서로 연관되어 있는 함수와 변수들을 객체로 그룹핑하여 담는 것

연관된 함수를 다른 함수와 구분되게 하는 것

복잡성을 낮추고, 정리하는 것

 

캡슐화

다형성

 

오버라이딩 vs 오버 로딩

폰에서 키패드 하나로 다양한 기능을 하는 것이 

오버라이딩

프로세스 VS 프로세서 VS 프로그램

프로세스 

프로그램을 처리시킨다

프로세스환경에서 프로세서에 접근하여 프로그램을 처리시킨다.

프로세서

CPU가 메모리에 접근한다.

운영체제(CPU)가 프로그램을 실행시킨다

프로그램

 

 

비교 

(1)  Student.prototype = Person.protytpe

=> 주소를 공유한다.( shallow copy)

 

(2)  Student.prototype = Object.create(Person.prototype)

Person.prototype을 하는 새로운 객체가 Student.prototype 참조만 한다

 

따라서 1에서 뒤에 것을 바꾸면 앞에 것에도 영향을 가지만

(2)에서  앞에 것을 바꿔도  (1)에 영향을 가지 않는다.

 

proto와 prototype

출처:유튜브 생활코딩

__proto__로 부모에 접근하는 것이고, prototype로 자식에 접근한다

장점

코드의 재사용 용이하다

클래스를 재사용가능하고, 상속을 통해 확장이 가능하다

유지보수가 쉽다

클래스 내부에 멤버 변수 혹은 메서도로 되어있어서 그 부분만 수정하면 된다

새로운 객체의 종류를 추가 할때에는 상속을 통하여 기존의 기능을 활용하고 존재하지 않는 새로운 속성만

추가하면 된다

대형 프로젝트에 적합하다

클래스 단위로 모듈화 시켜서 개발이 가능해서 업무 분담이 쉽다

단점

실행시 속도가 상대적으로 느리다

객체 단위로 저장되고, 정보교환이 수시로 일어나야해서 느리다

클래스

실행되는 틀을 제작하는 것

 

this

console.group("------------");
let jio = {
  name: "lee",
  firstSc: 10,
  secondSc: 20,
  sum: function (f, s) {
    return f + s;
  },
};

console.log(jio.sum(jio.firstSc, jio.secondSc));

console.groupEnd();
console.group("------------");

let jio = {
  name: "lee",
  firstSc: 10,
  secondSc: 20,
  sum: function () {
    return this.firstSc + this.secondSc;
  },
};
console.log(jio.sum());

this는 그 this가 속해있는 객체를 가리킨다

함수의 이름을 호출할때 쓰인다

위에 this를 쓰면 변수의 이름이 바뀌더라도 그대로 넣으면 된다

 

 

생산자 생성

var d1 = new Date();
console.log("d1.getFullYear()", d1.getFullYear());
console.log("d1.getMonth()", d1.getMonth() + 1);

new로 생산자  생성

앞에 new가 붙으면 생성자 함수라고 한다

Date 내장된 함수다(=native code)

 

생산자함수(construction function)

function players(name, firstSc, secondSc, thirdSc) {
  this.name = name;
  this.firstSc = firstSc;
  this.secondSc = secondSc;
  this.thirdSc = thirdSc;
  this.sum = function () {
    return this.firstSc + this.secondSc + this.thirdSc;
  };
}
let jio = new players("kim", 10, 20, 30);
let lee = new players("lee", 50, 60, 70);
console.log(jio.sum());
console.log(lee.sum());

의미

반복적인 틀의 함수를 사용할 때, 다시 생성할 필요없이

특정한 객체의 속성들을 인자만 바꿔주면서 사용하기 쉽게 하는 것

 

 

 

반응형
복사했습니다!