MooTools
This article has multiple issues.Please helpimprove itor discuss these issues on thetalk page.(Learn how and when to remove these messages)
|
Developer(s) | The MooTools Dev Team |
---|---|
Initial release | September 8, 2006[1] |
Stable release | 1.6.0
/ January 14, 2016[2] |
Repository | https://github /mootools/mootools-core |
Written in | JavaScript |
Type | Ajax framework/JavaScript Framework |
License | MIT License[3] |
Website | mootools |
MooTools(My Object-Oriented Tools)[4]is a lightweight,object-orientedJavaScriptframework.It is released under thefree, open-sourceMIT License.[5]
Overview
[edit]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.[6]
- MooTools follows object-oriented practices and theDRYprinciple.[7]
- An advanced effects component, with optimized transitions such as easing equations used by many Flash developers.[8]
- Enhancements to theDOM,enabling developers to easily add, modify, select, and delete DOM elements. Storing and retrieving information with Element storage is also supported.[9]
The framework includes built-in functions for manipulation ofCSS,DOMelements, native JavaScript objects,Ajaxrequests, DOM effects, and more. MooTools also provides a detailed, coherentapplication programming interface(API),[10]as well as a custom downloads module allowing developers to download only the modules and dependencies they need for a particular app.[11][12]
History
[edit]Valerio Proietti first authored the framework and released it in September 2006[13]taking as his inspirationPrototypeand Dean Edward'sbase2.MooTools originated from Moo.fx, a popularJavaScripteffects library released in October 2005 by Valerio Proietti as an add-on to thePrototype Javascript Framework.[14]It can be used as a lighter alternative toscript.aculo.usor 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)[15]further extended the native Element object as well[13]to offer greater control of theDocument Object Model(DOM).[16]
Components
[edit]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.[17]
- More:An official collection of add-ons that extend the Core and provide enhanced functionality.[18]
- Class:The base library for Class object instantiation.[19]
- Natives:A collection ofJavaScriptNative Object enhancements. The Natives add functionality, compatibility, and new methods that simplify coding.
- Element:Contains a large number of enhancements and compatibility standardization to theHTML Elementobject.[20]
- Fx:An advanced effects-API to animate page elements.[21]
- Request:IncludesXHRinterface, Cookie,JSON,andHTMLretrieval-specific tools for developers to exploit.[22]
- Window:Provides a cross-browser interface to client-specific information, such as the dimensions of the window.[23]
Browser compatibility
[edit]MooTools is compatible and tested with:[24]
- Safari3+
- Internet Explorer6+
- Mozilla Firefox2+
- Opera9+
- Chrome4+
Emphasis on modularity and reusability
[edit]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 aclass-based inheritancelanguage like Java with the MooToolsClassobject.
Classis an object of key/value pairs containing either properties or methods (functions).Classis 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 aClassobject syntax more familiar to classical inheritance models.[25]
Object-oriented programming
[edit]MooTools contains a robust Class creation and inheritance system that resembles most classically basedObject-oriented programming languages.For example, the following is MooTools' equivalent of theexamplesin Wikipedia's polymorphism page:
varAnimal=newClass({
initialize:function(name){
this.name=name;
}
});
varCat=newClass({
Extends:Animal,
talk:function(){
return'Meow!';
}
});
varDog=newClass({
Extends:Animal,
talk:function(){
return'Arf! Arf!';
}
});
varanimals={
a:newCat('Missy'),
b:newCat('Mr. Bojangles'),
c:newDog('Lassie')
};
Object.each(animals,function(animal){
alert(animal.name+': '+animal.talk());
});
// alerts the following:
//
// Missy: Meow!
// Mr. Bojangles: Meow!
// Lassie: Arf! Arf!
See also
[edit]- Ajax framework
- Rich Internet application
- Web 2.0
- Comparison of JavaScript frameworks
- XMLHttpRequest
- JavaScript framework
- JavaScript library
References
[edit]- ^Original release announcement
- ^"Release 1.6.0 · mootools/Mootools-core".GitHub.
- ^"MooTools".mootools.net.
- ^"MooTools at FOSDEM slides"(PDF).Archived fromthe original(PDF)on 2011-07-23.Retrieved2010-02-17.
- ^The Official MooTools Website
- ^MooTools' Core Download Page
- ^MooTools Class ObjectArchived2008-08-31 at theWayback Machine
- ^MooTools' Effects (FX) ClassArchived2008-06-23 at theWayback Machine
- ^MooTools' Element Class - A comprehensive list of Element manipulation methods.Archived2008-09-05 at theWayback Machine
- ^A Better Way to Use Elements
- ^MooTools Core Builder
- ^MooTools More Builder
- ^abNewton, Aaron (September 18, 2008).MooTools Essentials: The Official MooTools Reference for JavaScript and Ajax Development(1st ed.).Apress.pp. xvi.ISBN978-1-4302-0983-6.
- ^Newton, Aaron (September 18, 2008).MooTools Essentials: The Official MooTools Reference for JavaScript and Ajax Development(1st ed.).Apress.pp. xv.ISBN978-1-4302-0983-6.
- ^Version 1.6.1 of Prototype includes "an element metadata storage system."Prototype 1.6.1 releasedArchived2010-03-01 atarchive.today by Sam Stephenson, written September 1st, 2009. Retrieved March 21, 2010.
- ^Note that MooTools does not extend the native Object—allJavaScript 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.ISBN978-1-4302-0983-6.)
- ^MooTools CoreArchived2009-10-02 at theWayback Machine
- ^MooTools MoreArchived2009-10-04 at theWayback Machine
- ^MooTools ClassArchived2008-08-31 at theWayback Machine
- ^MooTools ElementArchived2008-09-05 at theWayback Machine
- ^MooTools Fx ClassArchived2008-06-23 at theWayback Machine
- ^MooTools Request ClassArchived2008-07-30 at theWayback Machine
- ^In addition to getting the size for any Element, you can easily get the dimensions of the windowArchived2008-09-11 at theWayback Machine
- ^MooTools lists its compatibility on its homepage.
- ^jQuery versus Mootools
Further reading
[edit]- "The Introduction to MooTools Architecture".Applied Mechanics and Materials.
- "Interactive Consultation Based on MooTools Long Polling Techniques".Applied Mechanics and Materials.
- Orchard, Leslie M.; Pehlivanian, Ara; Koon, Scott; Jones, Harley (August 31, 2009).Professional JavaScript Frameworks: Prototype, YUI, ExtJS, Dojo and MooTools(1st ed.).Wrox Press.p. 888.ISBN978-0-470-38459-6.
- Newton, Aaron (September 18, 2008).MooTools Essentials: The Official MooTools Reference for JavaScript and Ajax Development(1st ed.).Apress.p. 300.ISBN978-1-4302-0983-6.
- Lecomte, Xavier (June 1, 2012).Découvrez MooTools: Un framework JavaScript pour un site dynamique et interactif (FR)(1st ed.).DigitBooks.p. 260.ISBN978-2-8150-0215-8.