Closure란? 외부함수의 변수에 접근할 수 있는 내부 함수를 가리킨다.클로저를 사용하게 되면 전역변수의 오남용을 줄일 수 있는 효과가 있다. function Person() { var _name = 'Jason'; this.showName = function () { console.log(_name); }; } var student = new Person(); student.showName(); console.log(student._name); // 결과값 : Jason, undefined 로컬변수 _name은 private 변수, 즉 외부에서 접근할 수 없는 형태로 오직 showName함수를 통해서만 _name 값을 받아올 수 있다. ※ 클로저는 처리 속도와 메모리 측면에서 성능에 좋은 영향을 끼치..
Javascript prototype inheritance 자바스크립트에서 상속(inheritance)은 prototype을 이용하여 코드를 재사용할 수 있다. new 연산자를 이용한 classical한 방식과 Object.create()를 이용한 prototypal한 방식이 있다. // baseClass function Person() { this.sayJob = false; } // prototype method Person.prototype.say = function () { console.log(this.sayJob ? "Yes" : "No"); }; // subClass function Programmer() { Person.call(this); } Programmer.prototype = Ob..
Object creation patterns ▶ 자바스크립트 Javascript는 Java 와 같이 Class 가 존재하지 않는다.기존의 객체를 복사하여 새로운 객체를 생성하는 프로토타입 기반의 언어이다. 자바스크립트의 가장 큰 특징은 유연함(flexibility)이다.객체를 생성하는데 있어서 여러가지 패턴들을 살펴보겠다. ▶ Factory pattern function InfoFactory(name, age, job) { var person = {}; person.name = name; person.age = age; person.job = job; person.print = function () { console.log('Name: ' + this.name + ', Age: ' + this.age +..