Core contains an handful of common sense functions used in MooTools. It also contains some basic Hash and Array methods.
Checks to see if a value exists or is 0. Useful for allowing 0.
Syntax:
$chk(item);
Arguments:
- item - (mixed) The item to inspect.
Returns:
- (boolean) If the object passed in exists or is 0, returns true. Otherwise, returns false.
Example:
function myFunction(arg){
if($chk(arg)) alert('The object exists or is 0.');
else alert('The object is either null, undefined, false, or ""');
}
Clears a Timeout or an Interval. Useful when working with Function:delay and Function:periodical.
Syntax:
$clear(timer);
Arguments:
- timer - (number) The identifier of the setInterval (periodical) or setTimeout (delay) to clear.
Returns:
- (null) returns null.
Example:
var myTimer = myFunction.delay(5000); //Waits 5 seconds then executes myFunction.
myTimer = $clear(myTimer); //Cancels myFunction.
See also:
Checks to see if a value is defined.
Syntax:
$defined(obj);
Arguments:
- obj - (mixed) The object to inspect.
Returns:
- (boolean) If the object passed is not null or undefined, returns true. Otherwise, returns false.
Example:
function myFunction(arg){
if($defined(arg)) alert('The object is defined.');
else alert('The object is null or undefined.');
}
Creates a function which returns the passed argument according to the index (i) passed.
Syntax:
var argument = $arguments(i);
Arguments
- i - (number) The index of the argument to return.
Returns
- (function) The function that returns a certain argument from the function's arguments.
Example:
var secondArgument = $arguments(1);
alert(secondArgument('a','b','c')); //Alerts "b".
An empty function, that's it. Typically used for as a placeholder inside event methods of classes.
Syntax:
var emptyFn = $empty;
Example:
var myFunc = $empty;
Creates an empty function which does nothing but return the value passed.
Syntax:
var returnTrue = $lambda(true);
Arguments
- value - (mixed) The value for the created function to return.
Returns
- (function) A function which returns the desired value.
Example:
myLink.addEvent('click', $lambda(false)); //Prevents a link Element from being clickable.
Copies all the properties from the second object passed in to the first object passed in.
Syntax:
$extend(original, extension);
Arguments:
- original - (object) The object to be extended.
- extension - (object) The object whose properties will be copied to original.
Returns:
- (object) The first object passed in, extended.
Examples:
var firstObj = {
'name': 'John',
'lastName': 'Doe'
};
var secondObj = {
'age': '20',
'sex': 'male',
'lastName': 'Dorian'
};
$extend(firstObj, secondObj);
//firstObj is now: {'name': 'John', 'lastName': 'Dorian', 'age': '20', 'sex': 'male'};
Merges any number of objects recursively without referencing them or their sub-objects.
Syntax:
var merged = $merge(obj1, obj2[, obj3[, ...]]);
Arguments:
- (objects) Any number of objects.
Returns:
- (object) The object that is created as a result of merging all the objects passed in.
Examples:
var obj1 = {a: 0, b: 1};
var obj2 = {c: 2, d: 3};
var obj3 = {a: 4, d: 5};
var merged = $merge(obj1, obj2, obj3); //returns {a: 4, b: 1, c: 2, d: 5}, (obj1, obj2, and obj3 are unaltered)
var nestedObj1 = {a: {b: 1, c: 1}};
var nestedObj2 = {a: {b: 2}};
var nested = $merge(nestedObj1, nestedObj2); //returns: {a: {b: 2, c: 1}}
Used to iterate through iterables that are not regular arrays, such as built in getElementsByTagName calls, arguments of a function, or an object.
Syntax:
$each(iterable, fn[, bind]);
Arguments:
- iterable - (object or array) The object or array to iterate through.
- fn - (function) The function to test for each element.
- bind - (object, optional) The object to use as 'this' within the function. For more information see Function:bind.
Argument: fn
Syntax:
fn(item, index, object)
Arguments:
- item - (mixed) The current item in the array.
- index - (number) The current item's index in the array. In the case of an object, it is passed the key of that item rather than the index.
- object - (mixed) The actual array/object.
Examples:
Array Example:
$each(['Sun','Mon','Tue'], function(day, index){
alert('name:' + day + ', index: ' + index);
}); //Alerts "name: Sun, index: 0", "name: Mon, index: 1", etc.
Object Example:
//Alerts "The first day of the week is Sunday", "The second day of the week is Monday", etc:
$each({first: "Sunday", second: "Monday", third: "Tuesday"}, function(value, key){
alert("The " + key + " day of the week is " + value);
});
Returns the first defined argument passed in, or null.
Syntax:
var picked = $pick(var1[, var2[, var3[, ...]]]);
Arguments:
- (mixed) Any number of variables.
Returns:
- (mixed) The first variable that is defined.
- (null) If all variables passed in are
null
orundefined
, returnsnull
.
Example:
function say(infoMessage, errorMessage){
alert($pick(errorMessage, infoMessage, 'There was no message supplied.'));
}
say(); //Alerts "There was no message supplied."
say("This is an info message."); //Alerts "This is an info message."
say("This message will be ignored.", "This is the error message."); //Alerts "This is the error message."
Returns a random integer between the two passed in values.
Syntax:
var random = $random(min, max);
Arguments:
- min - (number) The minimum value (inclusive).
- max - (number) The maximum value (inclusive).
Returns:
- (number) A random number between min and max.
Example:
alert($random(5, 20)); //Alerts a random number between 5 and 20.
Converts the argument passed in to an array if it is defined and not already an array.
Syntax:
var splatted = $splat(obj);
Arguments:
- obj - (mixed) Any type of variable.
Returns:
- (array) If the variable passed in is an array, returns the array. Otherwise, returns an array with the only element being the variable passed in.
Example:
$splat('hello'); //Returns ['hello'].
$splat(['a', 'b', 'c']); //Returns ['a', 'b', 'c'].
Returns the current time as a timestamp.
Syntax:
var time = $time();
Returns:
- (number) - The current timestamp.
Tries to execute a number of functions. Returns immediately the return value of the first non-failed function without executing successive functions, or null.
Syntax:
$try(fn[, fn, fn, fn, ...]);
Arguments:
- fn - (function) The function to execute.
Returns:
- (mixed) Standard return of the called function.
- (null)
null
if all the passed functions fail.
Examples:
var result = $try(function(){
return some.made.up.object;
}, function(){
return jibberish.that.doesnt.exists;
}, function(){
return false;
});
//result is false
var failure, success;
$try(function(){
some.made.up.object = 'something';
success = true;
}, function(){
failure = true;
});
if (success) alert('yey!');
Returns the type of object that matches the element passed in.
Syntax:
$type(obj);
Arguments:
- obj - (object) The object to inspect.
Returns:
- 'element' - (string) If object is a DOM element node.
- 'textnode' - (string) If object is a DOM text node.
- 'whitespace' - (string) If object is a DOM whitespace node.
- 'arguments' - (string) If object is an arguments object.
- 'array' - (string) If object is an array.
- 'object' - (string) If object is an object.
- 'string' - (string) If object is a string.
- 'number' - (string) If object is a number.
- 'date' - (string) If object is a date.
- 'boolean' - (string) If object is a boolean.
- 'function' - (string) If object is a function.
- 'regexp' - (string) If object is a regular expression.
- 'class' - (string) If object is a Class (created with new Class, or the extend of another class).
- 'collection' - (string) If object is a native htmlelements collection, such as childNodes, getElementsByTagName, etc.
- 'window' - (string) If object is the window object.
- 'document' - (string) If object is the document object.
- 'event' - (string) If object is an event.
- false - (boolean) If object is undefined, null, NaN or none of the above.
Example:
var myString = 'hello';
$type(myString); //Returns "string".