1

글타래: Object-Oriented JavaScript의 용례들

다음은 JavaScript의 객체 지향 디자인 원리들을 사용한 용례들입니다.

- Encapsulation

// JavaScript Pet class

function Pet(name) {
    this._name = name;
}

Pet.prototype._name;

Pet.prototype.getName = function() {
    return this._name;
}

pet class의 instance 생성과 getName() 함수 실행

var p = new Pet("Max");
alert(p.getName());

- Inheritance

// JavaScript Dog class

function Dog(name) {
    Pet.call(this, name);
}

// This defines the Pet class as the prototype object 
// for all Dog instances.
Dog.prototype = new Pet();

Dog.prototype.wagTail = function() {
    // Wagging
}

// JavaScript Cat class

function Cat(name) {
    Pet.call(this, name);
}

Cat.prototype = new Pet();

Cat.prototype.purr = function() {
    // Purring
}

이렇게 해서 생성된 새로운 class들과 method들은 다음과 같이 사용:

var d = new Dog("Max");
d.wagTail();

var c = new Cat("Fluffy");
c.purr();

- Polymorphism

// JavaScript Pet class
// ...

Pet.prototype.speak = function() {
    alert(this.getName() + " says...");
}


// JavaScript Dog class
// ...

Dog.prototype.speak = function() {
    Pet.prototype.speak.call(this);
    alert("woof");
}


// JavaScript Cat class
// ...

Cat.prototype.speak = function() {
    Pet.prototype.speak.call(this);
    alert("meow");
}

method들의 실행은 이전과 같이:

p = new Dog("Max");
p.speak();

p = new Cat("Fluffy");
p.speak();

이렇게 보면, C#이나 Java처럼 강력한 기능들을 제공하지는 않지만, 객체 지향의 구조를 갖는 웹 어플리케이션들을 개발하는데 충분한 가능성들을 제공하고 있답니다.

+ = ²

2

댓글: Object-Oriented JavaScript의 용례들

Digital Web Magazine - Objectifying JavaScript : JavaScript 코드를 더 객체지향적인 코드로 바꾸는 대표적 방법들을 소개하고 있습니다. 주로, object literal을 사용하는 법과, function의 new 키워드를 쓰는 방법이 다루어져 있습니다.
댓글들도 눈여겨 볼 내용이 많군요.

JavaScript를 객체화하는 이유로는, 커다란 규모의 작업을 수행할 때 코드의 관리와 재사용이 간편해지기 때문일 것입니다.

+ = ²