반응형
반응형
프로토 타입을알기전에 객체지향 프로그래밍에대해서 알아보자 자바스크립트는 객체 기반의 프로그래밍 언어이며 원시값을 제외한 나머지값들이 모두 객체이다. 객체지향언어는 특징이나 성질을 나타내는 속성을 통해 여러개의 값을 하나의 단위로 구성한 객체로 이루어져있고 그 객체의 상태 , 동작을 하나의 논리적인 단위로 묶어서 생각한다. 각 객체는 독립적인 부품으로 볼수있지만 다른 객체와의 관계성을 가질수있다. 상속이란? 상속은 객체 지향 프로그래밍 핵심 개념으로 어떤 객체의 프로퍼티 또는 메서드를 다른 객체가 상속받아서 그래도 사용하는 것을 말한다. 자바스크립트는 프로토타입 을 기반으로 상속을 구현하여 불필요한 중복을 제거한다 그방법으로 기존의 코드를 적극 재사용하게되는데 이는 개발비용을 현저히 줄일수있는 잠재력이다...
다음 조건을 만족하는 객체를 일급객체라 한다. 무명의 리터럴로 생성할 수 있다. 즉 런타임에 생성이 가능하다. 변수나 자료구조( 객체, 배열 ) 에 저장할수있다. 함수의 매게 변수에 전달할수있다. 함수의 반환값으로 사용할수있다. 자바스크립트의 함수는 일급객체이다. // 1. 무명의 리터럴로 생성가능하다 // 2. 변수, 자료구조에 저장가능하다. const incresase = function (num) { return ++num;; } //3. 함수의 매개변수에 전달할 수 있다. //4. 함수의 반환값으로 사용할수있다. function makeCounter(aux) { let num = 0; return function () { num = aux(num) return num; } } 함수가 일급 객체라는..
객체 리터럴로 객체를 생성하는것이 일반적이나 생성자 함수로도 객체를 생성하는 방법이있다. 생성자 함수란 new 연산자와 함께 호출하여 객체를 생성하는 함수이다. 생성자 함수에의해 생성된 객체를 인스턴스라 한다. 이방법의 장단점을 알아보자 Object 생성자 함수 new Object() 함수를통해 빈객체를 생성할수있고 이후에 프로퍼티를 추가하여 객체를 완성할수있다. 물론 빈객체를 생성하지않고 프로퍼티 값을 넣을수있긴하다. // 생성자 함수를 통해 빈객체 생성 const person = new Object(); // 빈객체에 프로퍼티들을 동적으로 추가 person.name = "jaehyun"; person.sayHello = function () { console.log(`Hi My name is ${th..
백준 사이트는 자바스크립트 언어를 사용하기위해서는 node.js 를 통해서 입출력을 받아야한다.다른 블로그를 보면서 배운점을 공유하고자 글을 작성한다.입출력을 받기위해서 두가지 방법이있는데1. readline 모듈2.fs 모듈 다만 시간 효율성을 따지자면 fs 모듈이 더빠르기때문에 fs 모듈을 사용하여 푸는것이 더 효율적이라고 생각한다.https://help.acmicpc.net/language/info 언어 정보section .data input: db "%d %d",0 output: db "%d",10,0 a: times 4 db 0 b: times 4 db 0 section .text global main extern scanf extern printf main: push rbp mov rdi, i..
프로토타입 프로토 타입은 어떤 객체의 상위객체(부모 객체)의 역할을 하는 객체이다. 프로터 타입은 하위 객체에게 자신의 프로퍼티와 메서드를 상속한다. 하위 객체는 자신의 프로퍼티 또는 메서드 인것처럼 자유롭게 사용할수있다. 프로퍼티 정의 프로퍼티 정의란 새로운 프로퍼티를 추가하면서 프로퍼티 어트리뷰트를 명시적으로 정의하거나 , 기존 프로퍼티 의 어트리뷰트를 재정의 하는것을 말한다. object.defineProperty 메서드를 사용하면 퍼르퍼티의 어트리뷰트를 정의할수있다. 인수로는 객체의 참조 , 데이터 프로퍼티의 키인 문자열, 프로퍼티 디스크립터 객체를 전달한다. // 데이터 프로퍼티 정의 // Object.defineProperty 메서드는 한번에 하나의 프로퍼티만 정의할수있다. Object.def..
프로퍼티 어트리 뷰트를 이해하기위해 내부 슬롯 과 내부 메소드의 개념을 알아보자 내부 슬롯과 내부 메서드 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기위해 ECMAScript 사양에서 사용하는 의사 프로퍼티 와 의사 메서드 이다. [[]] 이중대괄호 로 감싼 이름들이 내부 슬롯과 내부 메서드 이다. 자바스크립트 엔진 내부 로직이므로 원칙적으로 자바스크립트는 내부 슬롯과 내부 메서드에 직접 접근하거나 호출할수있는 방법을 제공하지 않는다. 단 일부 내부 슬롯과 내부 메서드에 한하여 간접적으로 접근할수있는 수단이 제공된다. 예를 들어 모든 객체를 [[prototype]]이라는 내부 슬롯을 갖는데 __proto__ 를 통해 간접적으로 접근할수있다. const { prototype } =..