MooTools

MooTools は、オープンソースの軽量でモジュラーなオブジェクト指向 JavaScript Webアプリケーションフレームワークであり、MIT License でリリースされている。その目的は、Web開発者にブラウザから独立したエレガントで柔軟で効率的なJavaScriptを書く手段を提供することである。MooTools には、CSS、DOM要素、ネイティブなJavaScriptオブジェクト、Ajax要求などを操作する組み込み関数がある。また、詳細なAPI文書が用意されておりMooTools Documentation、開発の効率化に寄与する。

 利点 
MooToolsはネイティブなJavaScript以上の利点をユーザーに提供することを目指している。例えば、次のような利点がある。
 拡張性があるモジュラーなフレームワークであり、開発者は使用するコンポーネントを選択できるMooTools' Core Download Page。
 オブジェクト指向の慣習とDRY原則に従うMooTools Class Object。
 Flash開発者が使うような最適化された遷移を伴う特殊効果コンポーネントがあるMooTools' Effects (FX) Class。
 DOMを拡張し、開発者が容易にDOM要素を追加・更新・選択・削除できるMooTools' Element Class - A comprehensive list of Element manipulation methods.。

 コンポーネント 
MooToolsには多くのコンポーネントがあるが、各アプリケーションで全てをロードする必要はない。コンポーネントは以下のように分類されている。
 Core: 他のコンポーネントで必要となるユーティリティ関数の集まりMooTools Core。
 Class: Classオブジェクト実装のための基本ライブラリMooTools Class。
 Natives: JavaScriptのネイティブオブジェクトの拡張。機能や互換性を強化し、新たなメソッドを追加し、コーディングを単純化している。
 Element: HTML要素オブジェクトへの各種拡張と互換性強化MooTools Element。
 Fx: 要素のアニメーション効果のためのAPIMooTools Fx Class。
 Request: XHRインタフェース、クッキー、JSON、HTML検索専用ツールなどを提供MooTools Request Class。
 Window: ウィンドウサイズなどのクライアント固有情報へのインタフェース（ブラウザ非依存）In addition to getting the size for any Element, you can easily get the dimensions of the window.。

 ブラウザとの互換性 
MooToolsは以下の各ブラウザのバージョンで評価し動作確認されているMooTools lists its compatibility on its homepage.。
 Safari 2+
 Internet Explorer 6+
 Mozilla Firefox 2+
 Opera 9+
 Camino 1.5+

 オブジェクト指向プログラミング 
MooToolsは多くのオブジェクト指向言語と似たようなしっかりしたクラス生成と継承のシステムを備えている。例えば、以下は英語版Wikipediaにあるこちらのポリモーフィズムの例と同じことをMooToolsで実現したものである。

 var Animal = new Class({

    initialize: function(name){
        this.name = name;
    }

 });

 var Cat = new Class({ 
    Extends: Animal,

    talk: function(){
        return 'Meow!';
    }

 });

 var Dog = new Class({

    Extends: Animal,

    talk: function(){
        return 'Arf! Arf';
    }

 });

 var Animals = {
    a: new Cat('Missy'),
    b: new Cat('Mr. Bojangles'),
    c: new Dog('Lassie')
 };

 for(var animal in Animals) alert(animal.name + ': ' + animal.talk());

 // alerts the following:
 //
 // Missy: Meow!
 // Mr. Bojangles: Meow!
 // Lassie: Arf! Arf!

 関連項目 
 JavaScript
 Ajax
 Web 2.0
 XMLHttpRequest
 リッチインターネットアプリケーション
 AngularJS(1.x,2.0α Ver)
 Aurelia.js
 Backbone.js
 Ember.js
 JavaScriptライブラリ
 Javascript framework
 JQuery
 Knockout.js
 MooTools
 Polymer
 Prototype JavaScript Framework
 Ractive.js
 React
 Riot.js
 vue.js

 脚注・出典 

 外部リンク 
 mootools.net - 公式サイト
 公式ユーザーグループ
 The MooTorial
 Mootools Essentials (book)
 jQuery vs MooTools: Choosing Between Two Great JavaScript Frameworks
 Clientcide Blog and Plugins by Aaron Newton
 Guillermo Rauch - MooTools Articles, Tutorials, Tips and Plugins by Guillermo Rauch
 David Walsh Blog - MooTools Tutorials and Plugins by David Walsh
 mooforum - The Unofficial MooTools Community
 MooTools 1.1 Plugins
 Free Mootools Plugins
 A widgets library built on mootools

Category:JavaScript
Category:ウェブ開発