보호되어 있는 글입니다.
value vs Identifier value 값이란 string number 등의 primitive 속성 메모리 주소와 상관없이 그 안의 값이 같으면 같다고 한다.(a=3, b=3이면 다른 메모리주소이지만 안의 값이 같기에 같다고하는 것) 계속 복사본을 만들기 때문에 상태 변화에 안전하다 연산을 기반으로 로직 전개하게 된다 identifier ✔ => 객체지향적 코드작성시에는 identifier!! 주소값을 비교한다. 하나의 원본 (참조) 연산이 아니라 메세지를 기반으로 로직 전개 다형성 polymorphism = 대체가능성 + 내적일관성 대체가능성이란? 자식은 부모를 대체할 수 있는 것. 확장된 클래스는 대상 클래스의 대체 할 수 있다. => 콘솔을 보면 TRUE가 나온다. const Worker =..

자바스크립트는 명령형(imperative), 함수형(functional), 프로토타입 기반(prototype-based) 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다. 오늘은 객체지향 프로그래밍. 함수형 프로그래밍. 그리고 프로토타입에 대해서 다시 복습해볼것이다. 객체지향 프로그래밍 객체지향 프로그래밍이란. 하나의 모델이되는 청사진을 만들고, 그 청사진을 바탕으로 한 객체!를 만드는 프로그래밍 패턴. 여기서 청사진은 class, 만들어진 객체는 Instance라고 불린다. 인스턴스를 만들때 어떻게 만드는가? ----------------> new라는 키워드를 통해서 만들게된다. ES5에서는 function키워드를 썻으나. ES6에서는 class가 추가되어 class키워드를 사용하여 만든..
JSON : Javascript object notation 데이터 교환을 위해 만들어진 객체 형태의 포맷 데이터를 주고받을때 쓰는 간단한 파일 포맷 텍스트를 기반으로 해서 가볍다. {Key : vlaue} 이루어졌다. 직렬화, 전송할때 쓴다. 프로그램에 언어나, 플랫폼에 상관없이 쓸수있다. 메시지 객체를 전송하려면? 전송 가능한 조건 수신자(reciever)와 발신자(sender)가 같은 프로그램을 사용한다. 또는, 문자열처럼 범용적으로 읽을 수 있어야 한다. JavaScript에서 객체에 메소드(message.toString())나 형변환(String(message))을 시도하면, [object Object] 라는 결과를 리턴 이문제점을 해결하기위해 뚜둥!! JSON등장 객체를 JSON의 형태로 변환..
class Grandma{ constructor(name){ this.firstname = 'lee' this.name = name } } let Grandma1 = new Grandma('chaeyoung') Grandma와 유사한 class를 만들고싶다. => 할머니의 속성을 그대로 물려받아서. => extends 사용 extends해서 만든 class는 this를 함부로 사용할수없다. super()다음에 사용해야한다. super : 부모 class의 constructor를 의미한다. class Grandma{ constructor(name){ this.firstname = 'lee' this.name = name } } class Mother extends Grandma{ constructor(na..

자바스크립트는 객체지향언어인가요? 아닙니다. 하지만 멀티패러다임 언어 입니다. 객체지향으로 작성할수도있고 안할수도 있다. 자바스크립트는 프로토타입 기반 언어입니다. 상속을 구현할수있는 문법 =프로토타입 생각보다 엄청 어려웠던 개념! mdn을 여러번 반복해서 읽어도 어려운 개념이다. 블로그를 정리하면서 내 머릿속에서도 개념이 더 잘정리되길 바라며 let's go! 프로토타입이란? 유전자!!! 메소드와 속성을 상속받기위한 템플릿 프로토타입 === 유전자 (원형객체) 상속되는 속성과 메소드들은 각 객체가아닌, 객체의 생성자!! prototype라는 속성에 정의되어있다. prototype에 값을 추가하면 모든 자식들이 물려받기가 가능하다. __proto__를 통하여 prototype 객체를 볼 수 있다. 프로토..
OOP Basic concept 캡슐화 데이터(속성)의 기능(메소드)을 하나의 객체로 묶는것 데이터(속성)와 기능(메소드)을 함께 묶다보니, 자연스럽게 이과정에서 은닉화가 된다. => 외부에 메소드만을 노출 => 유지보수가 쉽다. 은닉화 : 내부데이터나 구현이 외부로 누출되지않는것을 의미. 추상화 실제 노출되는것은 단순하게 만드는개념. 즉 데이터는 절차지향으로 구현하며, 노출되는 메소드는 단순화 인터페이스 :클래스 정의 시, 메소드와 속성만 정의한 것 상속 부모클래스의 특징을 자식 클래스가 물려받는것 다양화 같은이름을 가진 메소드라도 조금씩 다르게 작동하는것 Class 와 Instance class : 하나의 모델이 되는 청사진을 의미한다. instance : 그 청사진을 바탕으로 한 객체 constru..