본문 바로가기

프로토타입7

[자바스크립트] 필수 개념 - 어렴풋이 알면 모르는 것 [기본이자 필수개념 - js 프로그래밍 할 때 모르면 코드 못짜, 다른 사람 코드 못봐] 1) 브라우저 환경에서 자바스크립트는 샌드박스 환경에서 실행됨 : 파일 입출력 막기2) 함수를 통해 생성된 객체는 __proto__ (부모 객체의 프로토타입을 저장하는 프로퍼티가 존재함) => new String, new Object, new 사용자함수 등 => 사용자 함수를 선언하는 것 : new Function()=> 리터럴로 string을 생성하는 경우에는 x=> 부모 객체의 prototype 객체 프로퍼티에 추가를 하면 상속받는 객체들이 추가된 메서드나 변수를 사용할 수 있음 => 프로토타입 체인 : 해당 객체에 프로퍼티가 존재하지않을 경우 부모 객체로 올라감 => 즉시 반영 : 부모 역할을 하는 functi.. 2017. 7. 28.
[자바스크립트] 객체지향 프로그래밍하기 [프로토타입 기반 객체지향]- 자바스크립트는 클래스가 존재하지않음- 객체지향 프로그래밍을 할 수 있음 : 객체, 인스턴스 변수/메서드, 정보은닉(클로저), 상속(prototype, __proto__)- 자바스크립트 객체지향 핵심 : 프로토타입 객체(체인)- 해당 포스팅을 통해 단계별로 상속, 정보은닉 하는 방법을 알아볼 것 : 자바스크립트는 어떻게 구현하나 [자바스크립트로 객체지향 프로그래밍하기]1) 기본적인 인스턴스 생성 구조12345function Person(name){ this.name = name;} var jinbro = new Person("jinbro");cs- Person 함수 : 클래스 역할이자 생성자(객체 생성 시 처음 호출 : 인스턴스 변수 값 및 메서드 설정을 위해) 역할- new.. 2017. 5. 26.
[자바스크립트] 객체 그리고 프로토타입 [먼저 보면 좋은 게시글]- [자바스크립트] 객체란 무엇인가 그리고 함수는 객체다 : http://jinbroing.tistory.com/113 [객체란]- 객체란 변수프로퍼티와 메서드들이 모여 이룬 하나의 꾸러미- 추상적 객체와 구체적 객체(인스턴스 객체) 구분지어 사용: 한 종류지만 각자의 개성에 맞는 값, 구체적 행동 방식을 가짐(다양성)- 객체간의 관계를 만들어 프로그래밍하는 방식을 객체지향 프로그래밍이라 함- 객체는 레퍼런스 타입 : 변수에 값을 직접 대입하는 것이 아니라 객체 메모리 주소를 대입함 [자바스크립트의 객체지향]- 객체지향 프로그래밍 : 객체 사이에 관계를 형성하여(추상화된 객체 - 구체화된 객체) 프로그래밍 하는 방식- 자바스크립트는 객체지향이긴한데, class가 없다- 자바스크립.. 2017. 5. 17.
[자바스크립트] 프로토타입체인 [목표]- 헷갈리는 자바스크립트 프로토타입기반 객체지향 안헷갈리게 하기 [자바스크립트 객체 그리고 프로토타입체인](1) 객체리터럴 : 숏컷 방식(간단하게)1var obj1 = { } cs (2) 생성자 : 위의 객체와 동일한 객체를 만들어냄, function Object()의 인스턴스 객체1var obj2 = new Object()cs - Object 타입은 모든 객체의 최상위타입- 자바스크립트는 프로토타입(객체의 원형을 가진 객체, 함수의 공통된 프로퍼티, 메소드 저장)을 이용한 상속을 지원함- 그래서 Object 타입 생성자의 프로토타입 객체를 상속받은 인스턴스 객체가 생성되어 obj2에 저장되었다고 표현- 프로토타입을 이용하여 객체와 객체끼리 연결하고 한쪽 방향으로 상속받는 형태를 만들 수 있음- .. 2017. 4. 16.
[자바스크립트] 프로토타입 [프로토타입]- 자바스크립트 객체지향 방식- 자바스크립트의 모든객체는 부모역할을 하는 객체와 연결되어있음 => 클래스 기반 객체지향처럼 부모 역할 객체의 프로퍼티, 메서드를 상속개념(프로토타입체인)과 같이 받아올 수 있음 => 이러한 부모역할 객체를 프로토타입(Prototype)이라함 => 부모역할 객체가 function이라면 prototype 속성이 있는데 이 프로퍼티에 공통 프로퍼티, 메서드를 정의함 => 부모역할 객체가 객체리터럴로 생성된 객체라면 리터럴에 공통프로퍼티, 메서드를 정의함 [prototype과 __proto__ 속성 차이](콘솔이미지 : function을 가지고 객체 생성하고 __proto__속성 리뷰)1) function 객체에서 new를 통해 객체를 생성하였음2) new를 통해 생.. 2017. 3. 18.
[자바스크립트] 함수는 무엇이다 [함수란]1) 일반적 기능- 특정 작업에 필요한 일련의 구문들을 그룹화하기위한 개념- 동일 작업을 필요할 때마다 불러오기위해 필요한 개념 : 코드 재사용 2) 자바스크립트 기능- 객체생성 : 생성자함수(http://jinbroing.tistory.com/54 : 생성자함수 검색)=> 정보은닉(데이터), 함수 생성, 모듈화- 함수도 객체(first-class object, 일급객체)이기때문에 변수나 객체, 배열에 저장될 수 있고, 다른 함수의 파라미터, 반환값으로 사용될 수 있음 [함수정의]1) 함수선언식 : function 키워드로 선언함- 함수명 : 함수명 생략 불가, 함수명으로 재귀적 호출(자신 호출), 디버거가 해당함수를 구분할 수 있는 식별자 역할- 파라미터(매개변수) : 함수가 호출될 시 필요한.. 2017. 3. 15.
[자바스크립트] 자바스크립트 소개 - 웹은 물론이고, 하이브리드 앱, 서버사이드(nodejs), 데스크탑(electron) 등에서도 자바스크립트는 사용됨 : 환경의 다양화 1) html, css로 이뤄진 정적인 웹을 동적으로 바꾸어주는 역할(웹브라우저를 프로그래밍적으로 제어)로 사용이 되었음2) 구글의 V8 자바스크립트 엔진(속도 개선)을 기반으로 한 nodejs(웹서버)를 통해 서버사이드 개발 가능해짐3) 프론트앤드 영역에서 Angular, React, Vue 등 자바스크립트 프레임워크들이 각광을 받고 있음4) 백엔드 영역에서 nodejs, soketIO, express 등 자바스크립트 프레임워크들이 각광을 받고 있음 5) Google Apps의 Script 편집기에 자바스크립트를 삽입(문서 제어)하여 사용가능함 - 함수 기반1) 자바.. 2017. 3. 7.