분류 전체보기 111

TIL 43일차_1급시민

객체지향프로그래밍을 배우면서 1급 시민에대해 다시 정리할 필요가 있다고 느껴서, 1급 시민, 1급 객체, 1급 함수, 고차 함수 등에 대해 정리해보려고 한다. 1급시민 프로그래밍 언어에서 1급 시민의 조건은 다음과 같다. 변수에 담을 수 있다. 함수의 인자로 전달할 수 있다. 함수의 반환값(return)으로 전달할 수 있다. 거의 모든 프로그래밍 언어에서 숫자형, 문자형은 1급 시민의 조건을 충족한다. 1급객체 1급객체란, 말 그대로 1급 시민의 조건을 충족하는 객체이다. JavaScript에서 객체는 1급 시민이므로, 1급객체라 할 수 있다. 1급함수 Javascript에서 함수는 객체이며, 따라서 1급 시민에 해당하므로 1급함수라고 할 수 있다. 몇몇 학자들은 1급 함수가 되려면 1급 시민의 조건과 ..

TIL 42일차_상속 방법 두가지: pseudoClassical패턴과 ES6+ class문법

pseudoclassical 상속 방법 상위클래스 Person은 다음과 같다. function Person(first, last, age, gender, interests) { this.name = { first, last }; this.age = age; this.gender = gender; this.interests = interests; }; Person.prototype.greeting = function() { alert('Hi! I\'m ' + this.name.first + '.'); }; 상속받아서 생성자함수 수정하기. function Teacher(first, last, age, gender, interests, subject) { Person.call(this, first, last,..

TIL 41일차_상속과 프로토타입

ES6부터 class키워드를 지원하기 시작했으나, 문법적인 양념일뿐이며 자바스크립트는 여전히 프로토타입 기반의 언어이다. 상속 관점에서 자바스크립트의 유일한 생성자는 객체뿐이다. 각각의 객체는 [[Prototype]]이라는 은닉(private) 속성을 가지는데 자신의 프로토타입이 되는 다른 객체를 가리킨다. 그 객체의 프로토타입 또한 프로토타입을 가지고 있고 이것이 반복되다, 결국 null을 프로토타입으로 가지는 오브젝트에서 끝난다. null은 더 이상의 프로토타입이 없다고 정의되며, 프로토타입 체인의 종점 역할을 한다. 속성 상속 자바스크립트 객체는 속성을 저장하는 동적인 "가방"과 (자기만의 속성이라고 부른다) 프로토타입 객체에 대한 링크를 가진다. 객체의 어떤 속성에 접근하려할 때 그 객체 자체 속..

TIL 40일차_ 객체지향프로그래밍(OOP)

객체지향 프로그래밍이란??지금까지 수업을 들으면서 '결국 모든 것은 객체이다'라는 말을 몇번은 들은 것 같다. 그때마다 나는 '???? 객체는 {a: 1} 이런 형태아닌가? 왜 다 객체라고하지'라는 생각을 했는데 오늘 조금은 무슨말인지 알것 같기도하다.첫번째는 상속의관점에서 자바스크립트의 유일한 생성자는 객체뿐이다. 배열의 프로토타입은 Array를 가리키고, 이 Array의 프로토타입은 결국 Object를 가리킨다.두번쨰는 객체지향프로그래밍에서 '객체는 모든 사물이라고도 할 수 있다.'라는 약간은 추상적인 개념을 포함하는 것이다. 내앞의 노트북도 하나의 객체이고, 책상, 침대, 나자신도 하나의 객체가 될 수 있다. 각각의 객체는 속성과 행동을 갖고 있다.각각의 사람들은 하나의 독립적인 객체이지만 모두 인..

TIL 39일차_모듈과 CommonJS

모듈?? 개발하는 애플리케이션의 크기가 커지면 언젠가 파일을 여러 개로 분리해야하는 시점이 온다.(라고한다.) 이때 분리된 파일 각각을 모듈이라고 부르는데, 모듈은 대개 클래스 하나 혹은 특정한 목적을 가진 복수의 함수로 구성된 라이브러리 하나로 구성된다. CommonJS CommonJS는 이러한 모듈을 관리하기 위한 모듈시스템 중 하나이다. 그러나 모듈시스템은 2015년에 표준으로 등재되면서 대부분의 주요 브라우저와 Node.js는 모듈시스템을 지원하고 있다.(export와 import) 하지만 아직 많은 회사들과 스크립트에서 CommonJS를 사용하고 있기때문에 우린 알아두어야한다.😱 모듈 사용하기 우리는 필요한 모듈을 npm install명령어를 사용하여 npm저장소에서 다운받아 node_modul..

TIL 38일차_package.json

package.json은 뭐야 그동안 과제를 하다보면 보이는 package.json이 정확히 무엇인지 알았다.🙃 package.json에는 프로젝트(패키지) 전반에 관한 정보가 들어있다. node.js에서 남이 만들어 놓은 모듈을 npm모듈이라고 하며, npm모듈을 활용하기 위해 해당 모듈에 대한 정보를 담은 파일이 package.json이다. 간단하게, 전자제품을 보러 갔을 때, 제품 카탈로그가 package.json이라고 할 수 있다. 카탈로그로 어떤 제품이 있는지 알 수 있는 것처럼 package.json만 보면 어떤 모듈이 들어가 있는지를 알 수 있다. 그럼 package.json을 보고 뭘 해야하지? 주의할 점은, package.json은 어떤 모듈인지만 적혀 있을 뿐이고 프로그램을 실행시키기 ..