아디봉의.net
자바스크립트 코딩기법과 핵심패턴 제 6장 코드 재사용 패턴 #2 이 책에서는 자바스크립트에서 코드 재사용 패턴은 상속, 다른 객체와 합성, 믹스-인 객체 사용, 메서드 빌려쓰기등으로 소개하고 있다. 코드 재사용 작업을 접근할 때, GoF의 충고인 '클래스 상속보다 객체 합성을 우선시하라'를 생각하는게 중요하다. 지난 글(http://blog.jidolstar.com/795) 에서 코드 재사용 패턴중 클래스 방식의 상속에 대해서 다루었다. 나머지는 여기서 다룬다. 프로토타입을 활용한 상속 프로토타입을 활용한 상속은 클래스를 사용하지 않는 '새로운' 방식의 패턴이다. 다음과 같은 함수가 이것을 실현시킨다. 1.// 프로토타입 활용한 상속을 가능케하는 함수2.function object(o) {3.functi..
자바스크립트 코딩기법과 핵심패턴 제 6장 코드 재사용 패턴 #1 이 책에서는 자바스크립트에서 코드 재사용 패턴은 상속, 다른 객체와 합성, 믹스-인 객체 사용, 메서드 빌려쓰기등으로 소개하고 있다. 코드 재사용 작업을 접근할 때, GoF의 충고인 '클래스 상속보다 객체 합성을 우선시하라'를 생각하는게 중요하다. 클래스 방식 vs 새로운 방식의 상속 패턴 대다수의 프로그래밍 언어는 객체의 설계도로 클래스 개념이 있지만 자바스크립트에서는 클래스가 없다. 자바스크립트의 객체는 단순히 키-값의 쌍일뿐이며 언제든지 생성하고 변경할 수 있다. 클래스가 없기 때문에 다른 패턴으로 상속을 구현할 수 있다. 함수와 프로토타입, 클로저등의 개념을 적절히 섞는다면 다른 언어의 클래스및 상속패턴등을 흉내낼 수 있다. 하지만 ..
자바스크립트 코딩기법과 핵심패턴 제 5장 객체 생성 패턴 자바스크립트에서는 객체 리터럴이나 생성자 함수를 사용하여 쉽게 객체를 만들 수 있다. 자바스크립트는 네임스페이나, 모듈패키지, 비공개 프로퍼티, 스태틱 맴버 등에 대한 문법이 없기 때문에 이러한 기능을 구현하거나 대체하는 범용적인 패턴이 존재한다. 네임스페이스 패턴 장점 전역 공간을 깨끗하게 유지하고 코드를 구조화하여 정리를 도와주는 패턴. 사용법 전역 네임스페이스의 객체의 이름은 애플리케이션 이름이나 라이브러리의 이름, 도메인명, 회사 이름중 선택해서 사용한다.눈에 띄기 쉽도록 전역 객체 이름은 모두 대문자로도 사용한다. 단점 모든 변수와 함수에 접두어를 붙여야 하므로 전체적으로 코드량이 늘어남전역 인스턴스가 하나뿐이므로 코드의 어느 한부분이 수..
자바스크립트 코딩기법과 핵심패턴 제 4장 함수 자바스크립트에서 함수의 중요한 특징 함수는 일급객체 : 값이 전달될 수 있고 프로퍼티와 메서드를 확장할 수 있다.함수는 지역 유효범위 제공 : 함수외에 다른 중괄호({}) 묶음은 지역 유효범위를 제공하지 않는다. 로컬 변수의 선언은 로컬 유효범위의 맨 윗부분으로 호이스팅이 된다. 함수를 생성하는 문법 기명 함수 표현식(named function expression)1.var add = function add(a, b) {2.return a + b;3.};무명 함수 표현식(unnamed function expression) = 함수 표현식 , 익명함수(anonymous function)1.var add = function (a, b) {2.return a + ..
자바스크립트 코딩기법과 핵심패턴 제 3장 리터럴과 생성자 정리 이 장에서 중요한 것은 생성자 사용을 자제하고 리터럴 표기법을 사용하라는 것임! 리터럴 표기법이 생성자 함수 사용보다 더 간결하고 짧다.리터럴 표기법을 사용하면 유효범위 판별 작업이 발생하지 않는다.리터럴 표기법을 사용하는 것이 더 안정적이다. new Object()에 인자가 동적으로 전달되는 경우 예기치 않는 결과가 나올 수 있다. var o = new Object(1);에서 o.constructor === Number는 true가 된다.생성자는 함수내에 반환문이 없더라도 암묵적으로 this를 반환한다. 이 말은 this대신 다른 것도 반환할 수 있다는 것을 의미한다.생성자 패턴을 사용하면 논리적 오류가 발생할 수 있다. 자바스크립트에서 생..