MooTools

From Wikipedia, the free encyclopedia
(Redirected from Mootools)
Jump to navigation Jump to search

Template:Short description Script error: No such module "Unsubst". Script error: No such module "Infobox". Script error: No such module "Check for unknown parameters".Script error: No such module "Check for conflicting parameters". MooTools (My Object-Oriented Tools)[1] is a lightweight, object-oriented JavaScript framework. It is released under the free, open-source MIT License.[2]

Overview

MooTools provides the user with a number of options beyond native JavaScript. These include:

  • An extensible and modular framework allowing developers to choose their own customized combination of components.[3]
  • MooTools follows object-oriented practices and the DRY principle.[4]
  • An advanced effects component, with optimized transitions such as easing equations used by many Flash developers.[5]
  • 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.[6]

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),[7] as well as a custom downloads module allowing developers to download only the modules and dependencies they need for a particular app.[8][9]

History

Valerio Proietti first authored the framework and released it in September 2006[10] taking as his inspiration Prototype and Dean Edward's base2. MooTools originated from Moo.fx, a popular JavaScript effects library released in October 2005 by Valerio Proietti as an add-on to the Prototype Javascript Framework.[11] It can be used as a lighter alternative to script.aculo.us or other, bigger libraries. It provides simple, basic effects, and guarantees a small library size.

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)[12] further extended the native Element object as well[10] to offer greater control of the Document Object Model (DOM).[13]

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.[14]
  • More: An official collection of add-ons that extend the Core and provide enhanced functionality.[15]
  • Class: The base library for Class object instantiation.[16]
  • 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.[17]
  • Fx: An advanced effects-API to animate page elements.[18]
  • Request: Includes XHR interface, Cookie, JSON, and HTML retrieval-specific tools for developers to exploit.[19]
  • Window: Provides a cross-browser interface to client-specific information, such as the dimensions of the window.[20]

Browser compatibility

MooTools is compatible and tested with:[21]

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 intuitively 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 containing either properties or methods (functions). Class is effortlessly mixed and extended with other Class instantiations allowing for the most excellent 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.[22]

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

Script error: No such module "Portal".

References

<templatestyles src="Reflist/styles.css" />

  1. ↑ Script error: No such module "citation/CS1".
  2. ↑ The Official MooTools Website
  3. ↑ MooTools' Core Download Page
  4. ↑ MooTools Class Object Script error: No such module "webarchive".
  5. ↑ MooTools' Effects (FX) Class Script error: No such module "webarchive".
  6. ↑ MooTools' Element Class - A comprehensive list of Element manipulation methods. Script error: No such module "webarchive".
  7. ↑ A Better Way to Use Elements
  8. ↑ MooTools Core Builder
  9. ↑ MooTools More Builder
  10. ↑ a b Script error: No such module "citation/CS1".
  11. ↑ Script error: No such module "citation/CS1".
  12. ↑ Version 1.6.1 of Prototype includes "an element metadata storage system." Prototype 1.6.1 released Script error: No such module "webarchive". by Sam Stephenson, written September 1st, 2009. Retrieved March 21, 2010.
  13. ↑ 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. (Script error: No such module "citation/CS1".)
  14. ↑ MooTools Core Script error: No such module "webarchive".
  15. ↑ MooTools More Script error: No such module "webarchive".
  16. ↑ MooTools Class Script error: No such module "webarchive".
  17. ↑ MooTools Element Script error: No such module "webarchive".
  18. ↑ MooTools Fx Class Script error: No such module "webarchive".
  19. ↑ MooTools Request Class Script error: No such module "webarchive".
  20. ↑ In addition to getting the size for any Element, you can easily get the dimensions of the window Script error: No such module "webarchive".
  21. ↑ MooTools lists its compatibility on its homepage.
  22. ↑ jQuery versus Mootools

Script error: No such module "Check for unknown parameters".

Further reading

External links

  • Script error: No such module "Official website".Script error: No such module "Check for unknown parameters".

Template:Application frameworks Script error: No such module "Navbox". Script error: No such module "Navbox".