Oliver Steele씨가 프로젝트를 진행하면서 가지고 다니는  세가지 작은 JavaScript 라이브러리 에 대한 글을 썼습니다.

Fluently — 체이닝 메소드 작성 도구

Fluently 는 연결 메소드(chainable methods)를 작성할 수 있게 합니다. Oliver 씨가 mock 테스트 프레임웍을 만들면서 썼던 것처럼이요.

[code:js]
var o = Fluently.make(function(define) {
    define(‘fn1’, function() {console.info(‘called fn1’)});
    define(‘fn2’, function() {console.info(‘called fn2’)});
    define.empty(‘and’);
    define.alias(‘fn3’, ‘fn1’);
    define.modifier(‘not’);
});
o.fn3(); // same as o.fn1()
o.fn1().and.fn2() // same as o.fn1().fn2()
o.fn1().and.not.fn2() // options.not is set when fn2 is called

MOP JS

MOP JS는 JavaScript 메타프로그래밍을 위한 유틸리티입니다. 아마도 다른 메소드의 비동기 요청에 대한 응답이 돌아오기 전에는 메소드에 작동할 충분한 정보가 없는, 비동기 프로그래밍을 하기 전에는 필요없다고 생각하실 겁니다.

[code:js]
new MOP.MethodReplacer(object, methods)
MOP.withMethodOverridesCallback(object, methods, fn)
MOP.withDeferredMethods(object, methodNames, fn)

Collections JS

Collections JS는 브라우저 JavaScript와 ActionScript / OpenLaszlo 등에서 사용하는 프레임웍에 독립적인 JavaScript 메소드 모음입니다.

Array와 String 메소드는 class의 prototype을 확장하고, Hash 메소드는 prototype이 지저분해지는 것을 막기 위해 중간 래퍼를 사용합니다. ECMAScript 1.6+의 메소드와 같은 이름을 가지는 메소드들은 ECMAScript와 똑같은 스펙으로 동작합니다;  prototype 확장에 같은 이름이 있다면, Prototype 라이브러리에 있는 같은 이름의 함수도 같은 스펙으로 동작합니다; String#capticalize처럼 짝이 맞지 않는 것도 있습니다.

저는 이것을 Prototype의 무거움을 원하지 않거나 OpenLaszlo처럼 Prototype을 실행할 수 없는 환경에서 이런 함수들을 쓰고 싶을 때 사용합니다.

from Three Helpful JavaScript Libraries on Ajaxian
Posted by 행복한고니 트랙백 0 : 댓글 0

댓글을 달아 주세요