본문 바로가기

코드스테이츠(Immersive)/스프린트

프로토타입 [[prototype]] null 또는 객체며 상속 구현 [[prototype]] 값은 Prototype 객체이며 __proto__로 접근 가능하다 접근하게되면 내부적으로 Object.getPrototypeOf 호출되어 프로토타입 객체 반환 객체를 생성할때 프로토타입 결정되지만 프로토타입 객체는 다른 임의의 객체로 변경 (부모 객체인 프로토타입을 동적으로 변경할 수 있다는것을 의미 -> 상속 구현) [[Prototype]] vs prototype 프로퍼티 [[prototype]]은 객체라면 모두 갖고있고 상속을 위해 사용, 함수의 경우 객체이기 때문에 기본적으로 [[prototype]] 갖고 (Function.prototype) + 'prototype 프로퍼티' 소유 function Person(name..
상속 패턴 const food = { init: function(type) { this.type = type }, eat: function() { console.log('you ate the' + this.type) } } / food를 prototype으로 갖는 새로운 Object 생성 const waffle = Object.create(food) const carrot = Object.create(food) food.eat = function() { console.log('you totally ate the ' + this.type.toUpperCase()) } waffle.init('waffle') waffle.eat() carrot.init('carrot') carrot.eat() / 메소드 호출시 waff..
OOP in Js Creating objects const circle = { radius: 1, location: { x:1, y:1 }, // method draw: function(){ console.log('draw'); } }; Factories and Constructors(return의 유무) 재사용성을 증가시키기위해 Factories 혹은 Constructor 함수를 사용할 수 있다 // Factory function function createCircle(radius){ return { radius, draw: function(){ console.log('draw'); } }; } const circle = createCircle(1); // Constructor Function function Circl..
Data Structures2(Tree, B-Tree, Graph, Hash Table) 선형자료구조방식이아니라 계층형태(Ex. Dom Tree, 가계도, 월드컵 토너먼트 대진표) 트리는 엣지로 연결된 노드들(개별요소들의 집합) 각 노드들은 value를 가지고 있고 차일드 노드 또한 가질 수 있다. 트리의 첫번째 노드를 root라 한다. 이 노드가 다른 노드와 연결되 있을경우 root는 부모 노드 이고 연결된 노드는 자식노드이다. 트리의 노드들은 모두 엣지라 불리는 링크들로 연결 되있다. 우리가 노드 관계를 어떻게 다룰지에있어서 매우 중요한 요소이다. 'leafs'는 트리의 마지막 노드이다. 혹은 자식이 없는 노드들이다. 'Height' : 마지막 노드까지의 가장 긴 길이 'Depth' : root까지의 노드의 깊이 B-Tree B-Tree는 자식노드를 두개만 가질수 있는 이진 트리를 확장하..
Data Structures(Stack, Queue, Linked List) _Stack push와 pop만 동작하는 배열과 같다고 보면된다. 마지막들어온게 먼저 나가는 'Last In, First Out' /pesudo code/ 나중에 들어온것 부터 나가게 하기위한 count 변수사용 count가 높은 순으로 부터 출력 출력할때는 count변수 -1 _Queue unshift, pop이 동작하는 배열(순서가 반대일경우 push와 shift) 들어온 순서대로 나가는 'First In, First Out' /pesudo code/ enqueue('push') 마지막부터 들어가게 하기 위해 end 변수사용 storage[end]로 추가하면서 end값 ++ dequeue('pop') 처음부터 출력하기 위해 front 변수 사용 리턴값에 value 저장후 front부터 삭제하면서 fr..