본문 바로가기

javaScripts

(5)
Inheritance Patterns 자바스크립트에서 상속을 구현하는데는 여러가지 방법이 있지만 그 중 두가지를 정리해보려 한다. 1. pseudoclassical style var Car = function(name) { this.name = name; this.position = 0; } Car.prototype.move = function() { this.position += 1; } var avante = new Car("avante") 위의 코드를 실행하면 avante는 name과 position이라는 property에 각각 "avante"와 0이라는 값을 갖는다. 또한 move라는 메소드를 가지고 있다. 이러한 Car 클래스를 상속받은 객체를 만들어보자. var SmallCar = function(name, color) { Car..
__proto__, constructor, prototype 의 관계 자바스크립트에서 함수는 객체이다. 그래서 function Person() {} 와 var Person = new Function() {} 은 같은것이다. prototype에 대해 예를 들어 설명해보면, ----------------------------------------------------------------------- function Person(name, first, second) { this.name = name; this.first = first; this.second = second; } Person.prototype.sum = function() {} var kim = new Person("kim", 1, 2) -----------------------------------------..
About Object 1. OOP (Object Oriented Programming)란? 실제 세계를 모델링하여 소프트웨어를 개발하는 방법이며 다음과같은 3대 특성을 갖는다. 1) 캡슐화 : 데이터를 감추고 외부 세계와의 상호작용은 메소드를 통해서만 하는 방법 2) 상속 이미 작성된 클래스를 이어받아 새로운 클래스를 생성하는 기법으로, 기존 코드를 재활용해 사용할 수 있다. 3) 다형성 하나의 이름 (메소드, 함수 등등)으로 많은 상황에 대처하는 기법으로, 동일한 작업을 하는 함수들에 똑같은 이름을 부여할 수 있으므로 코드가 더 간단해지는 효과가 있다. (장점) 코드의 재활용성이 높다. 코딩이 절차지향보다 간편하다. 디버깅이 쉽다. (단점) 처리속도가 절차지향보다 느리다 설계에 많은 시간이 소요된다. 2. JavaScrip..
12/26 this에 관하여 : 1. Global: window 2. Function 호출: window 3. Method 호출: 부모 object ex) let obj = { value: 0, counter: { value: 0, increment: function() { this.value++; } } } => 여기서 this는 counter 4. Construction mode (new 연산자로 생성된 function 영역의 this: 새로 생성된 객체 5. .call or .apply 호출: call, apply의 첫번째 인자로 명시된 객체
12/25 jest에서 .toBe와 .toEqual의 차이점 : .toEqual은 값이 같은지 여부만 체크해주만, .toBe는 참조하는 객체가 같은지 체크를 해 주는 matcher입니다. 참조타입(object, array, function) 데이터를 변수에 할당하는 작업을 할 경우 해당 데이터 자체가 변수에 담기는 것이 아니라, 해당 데이터의 위치가 메모리 상에서 어디인지를 알려주는 주소값이 저장되게 되거든요. 이 주소값이 같은지를 체크해 주는 것이 toBe입니다.