MooTools

MooTools
MooTools
Mootools.png
Developer(s) The MooTools Dev Team
Stable release 1.3 / October 11, 2010; 13 months ago (2010-10-11)
Written in JavaScript
Type Ajax framework / JavaScript Framework
License MIT License
Website http://mootools.net

MooTools (My Object-Oriented Tools)[1] is a lightweight, object-oriented, web-application framework for JavaScript, written in JavaScript. It is released under the free, open-source MIT License.[2] It is used on more than 5% of all websites, and is one of the most popular JavaScript libraries.[3]

Contents

History

Valerio Proietti first authored the framework and released it in September 2006[4] taking as his inspiration Prototype and Dean Edward's base2. MooTools originated from Moo.fx, a popular plug-in Proietti produced for Prototype in October 2005,[5] which is still maintained and used.

Whereas Prototype extended—prototyped—many of JavaScript's native String, Array, and Function objects with additional methods, Proietti desired a framework that (at the time)[6] further extended the native Element object as well[4] to offer greater control of the Document Object Model (DOM).[7]

Components

MooTools includes a number of components, but not all need to be loaded for each application. Some of the component categories are:

  • Core: A collection of utility functions that all the other components require.[8]
  • More: An official collection of add-ons that extend the Core and provide enhanced functionality.[9]
  • Class: The base library for Class object instantiation.[10]
  • Natives: A collection of JavaScript Native Object enhancements. The Natives add functionality, compatibility, and new methods that simplify coding.
  • Element: Contains a large number of enhancements and compatibility standardization to the HTML Element object.[11]
  • Fx: An advanced effects-API to animate page elements.[12]
  • Request: Includes XHR interface, Cookie, JSON, and HTML retrieval-specific tools for developers to exploit.[13]
  • Window: Provides a cross-browser interface to client-specific information, such as the dimensions of the window.[14]

Browser compatibility

MooTools is compatible and tested with:[15]

Benefits

MooTools provides the user with a number of advantages over native JavaScript. These include:

  • An extensible and modular framework allowing developers to choose their own customized combination of components.[16]
  • MooTools follows object-oriented practices and the DRY principle.[17]
  • An advanced effects component, with optimized transitions such as easing equations used by many Flash developers.[18]
  • Enhancements to the DOM, enabling developers to easily add, modify, select, and delete DOM elements. Storing and retrieving information with Element storage is also supported.[19]

The framework includes built-in functions for manipulation of CSS, DOM elements, native JavaScript objects, Ajax requests, DOM effects, and more. MooTools also provides a detailed, coherent application programming interface (API)[20] as well as a custom downloads module allowing developers to download only the modules and dependencies they need for a particular app.[21][22]

Emphasis on modularity and reusability

Every JavaScript framework has its philosophy, and MooTools is interested in taking full advantage of the flexibility and power of JavaScript in a way that emphasizes greater modularity and code reuse. MooTools accomplishes these goals in a way that is intuitive to a developer coming from a class-based inheritance language like Java with the MooTools Class object.

Class is an object of key/value pairs that can contain either properties or methods (functions). Class is effortlessly mixed and extended with other Class instantiations allowing for the greatest focus of MooTools: Code reuse achieved through maximizing the power of JavaScript's prototypical inheritance, but in a Class object syntax more familiar to classical inheritance models.[23]

Object-oriented programming

MooTools contains a robust Class creation and inheritance system that resembles most classically based Object-oriented programming languages. For example, the following is MooTools' equivalent of the examples in Wikipedia's polymorphism page:

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')
};
 
Object.each(animals, function(animal) {
    alert(animal.name + ': ' + animal.talk());
});
 
// alerts the following:
//
// Missy: Meow!
// Mr. Bojangles: Meow!
// Lassie: Arf! Arf!

See also

References

  1. ^ MooTools at FOSDEM slides
  2. ^ The Official MooTools Website
  3. ^ Usage of JavaScript libraries for websites
  4. ^ a b Newton, Aaron (September 18, 2008). MooTools Essentials: The Official MooTools Reference for JavaScript™ and Ajax Development (1st ed.). Apress. pp. xvi. ISBN 1430209836. http://apress.com/book/view/1430209836. 
  5. ^ Newton, Aaron (September 18, 2008). MooTools Essentials: The Official MooTools Reference for JavaScript™ and Ajax Development (1st ed.). Apress. pp. xv. ISBN 1430209836. http://apress.com/book/view/1430209836. 
  6. ^ Version 1.6.1 of Prototype includes "an element metadata storage system." Prototype 1.6.1 released by Sam Stephenson, written September 1st, 2009. Retrieved March 21, 2010.
  7. ^ Note that MooTools does not extend the native Object—all JavaScript primitives like String and Function inherit from it—but instead provides a convenient Hash for the purpose: Think of it like having a set of utility methods that allow for nearly effortless object manipulation of regular JavaScript objects that are otherwise unaffected by the process. (Newton, Aaron (September 18, 2008). MooTools Essentials: The Official MooTools Reference for JavaScript™ and Ajax Development (1st ed.). Apress. pp. xvi. ISBN 1430209836. http://apress.com/book/view/1430209836. )
  8. ^ MooTools Core
  9. ^ MooTools More
  10. ^ MooTools Class
  11. ^ MooTools Element
  12. ^ MooTools Fx Class
  13. ^ MooTools Request Class
  14. ^ In addition to getting the size for any Element, you can easily get the dimensions of the window
  15. ^ MooTools lists its compatibility on its homepage.
  16. ^ MooTools' Core Download Page
  17. ^ MooTools Class Object
  18. ^ MooTools' Effects (FX) Class
  19. ^ MooTools' Element Class - A comprehensive list of Element manipulation methods.
  20. ^ ,A Better Way to Use Elements
  21. ^ MooTools Core Builder
  22. ^ MooTools More Builder
  23. ^ jQuery versus Mootools

Further reading

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Mootools — Desarrollador The MooTools Dev Team http://mootools.net Información general Última versión estable 1.2.2 23 de abril de 2009 …   Wikipedia Español

  • MooTools — Entwickler Das MooTools Entwicklerteam Aktuelle Version 1.4.1 (2011 10 07 [1]) Betriebssystem plattformunabhängig …   Deutsch Wikipedia

  • MooTools — Тип Библиотека JavaScript Разработчик Valerio Proietti Написана на JavaScript[1] Операционная система …   Википедия

  • Mootools — Développeur L équipe de Mootools …   Wikipédia en Français

  • MooTools — Développeur L équipe de MooTools Dernière version …   Wikipédia en Français

  • Mootools — …   Википедия

  • Comparison of JavaScript frameworks — Contents 1 Comparison of JavaScript frameworks 1.1 Rationale 1.2 Table of Javascript Frameworks 2 See also …   Wikipedia

  • Custom Form Elements — Entwickler: Mediavrog Aktuelle Version: 0.8.2 Betriebssystem: plattformunabhängig Kategorie …   Deutsch Wikipedia

  • Moo.fx — is a JavaScript effects library, first released in October 2005 by Valerio Proietti as an add on to the Prototype Javascript Framework.[1] It can be used as a lighter alternative to script.aculo.us or other, bigger libraries. It provides simple,… …   Wikipedia

  • Modx — Aktuelle Version: 0.9.6.3 (23. Dezember 2008) Betriebssystem: Apache oder IIS, PHP ab 4.3.10, MySQL ab 4.1.x Kategorie …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”