´óÏó´«Ã½

Please turn on JavaScript. To find out how to do this visit the .

Useful language functions.

Further Info & Examples

Methods

apply

Copies properties from one object to another

Synopsis

glow.lang.apply(destination, source);

Parameters

destination
Type

Destination object

source
Type

Properties of this object will be copied onto the destination

Returns

Example

var obj = glow.lang.apply({foo: "hello", bar: "world"}, {bar: "everyone"});
//results in {foo: "hello", bar: "everyone"}
clone

Deep clones an object / array

Synopsis

glow.lang.clone(Data);

Parameters

Data
Type

Object to clone

Returns

Example

var firstObj = { name: "Bob", secondNames: ["is","your","uncle"] };
var clonedObj = glow.lang.clone( firstObj );
extend

Copies the prototype of one object to another.

Synopsis

glow.lang.extend(sub, base, additionalProperties);

Parameters

sub
Type

Class which inherits properties.

base
Type

Class to inherit from.

additionalProperties
Type

An object of properties and methods to add to the subclass.

Description

The 'subclass' can also access the 'base class' via subclass.base

Example

function MyClass(arg) {
  this.prop = arg;
}
MyClass.prototype = {
  showProp: function() { alert(this.prop); }
};
function MyOtherClass(arg) {
  //call the base class's constructor
  arguments.callee.base.apply(this, arguments);
}
glow.lang.extend(MyOtherClass, MyClass, {
  setProp: function(newProp) { this.prop = newProp; }
});

var test = new MyOtherClass("hello");
test.showProp(); // alerts "hello"
test.setProp("world");
test.showProp(); // alerts "world"
interpolate

Replaces placeholders in a string with data from an object

Synopsis

glow.lang.interpolate(template, data, opts);

Parameters

template
Type

The string containing {placeholders}

data
Type

Object containing the data to be merged in to the template

The object can contain nested data objects and arrays, with nested object properties and array elements are accessed using dot notation. eg foo.bar or foo.0.

The data labels in the object cannot contain characters used in the template delimiters, so if the data must be allowed to contain the default { and } delimiters, the delimters must be changed using the option below.

opts
Type

Options object

delimiter

Alternative label delimiter(s) for the template

Type
Default
"{}"
Optional
Yes

The first character supplied will be the opening delimiter, and the second the closing. If only one character is supplied, it will be used for both ends.

escapeHtml

Escape any special html characters found in the data object

Type
Default
false
Optional
Yes

Use this to safely inject data from the user into an HTML template. The glow.dom module must be present for this feature to work (an error will be thrown otherwise).

Returns

Example

var data = {
  name: "Domino",
  colours: ["black", "white"],
  family: {
    mum: "Spot",
    dad: "Patch",
    siblings: []
  }
};
var template = "My cat's name is {name}. His colours are {colours.0} & {colours.1}. His mum is {family.mum}, his dad is {family.dad} and he has {family.siblings.length} brothers or sisters.";
var result = glow.lang.interpolate(template, data);
// result == "My cat's name is Domino. His colours are black & white. His mum is Spot, his dad is Patch and he has 0 brothers or sisters."
var data = {
  name: 'Haxors!!1 <script src="hackhackhack.js"></script>'
}
var template = '<p>Hello, my name is {name}</p>';
var result = glow.lang.interpolate(template, data, {
  escapeHtml: true
});
// result == '<p>Hello, my name is Haxors!!1 <script src="hackhackhack.js"></script></p>'
map

Runs a function for each element of an array and returns an array of the results

Synopsis

glow.lang.map(array, callback, context);

Parameters

array
Type

Array to loop over

callback
Type

The function to run on each element. This function is passed three params, the array item, its index and the source array.

context
Type
Optional
Yes

The context for the callback function (the array is used if not specified)

Returns

Array containing one element for each value returned from the callback

Example

var weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
var weekdaysAbbr = glow.lang.map(weekdays, function (day) {
  return day.slice(0, 3).toLowerCase();
});
// returns ["mon", "tue", "wed", "thu", "fri"]
replace

Makes a replacement in a string.

Synopsis

glow.lang.replace(str, pattern, replacement);

Parameters

str
Type

Input string

pattern
Type
| RegExp

String or regular expression to match against

replacement
Type
|

String to make replacements with, or a function to generate the replacements

Returns

A new string with the replacement(s) made

Description

Has the same interface as the builtin String.prototype.replace method, but takes the input string as the first parameter. In general the native string method should be used unless you need to pass a function as the second parameter, as this method will work accross our supported browsers.

Example

var myDays = '1 3 6';
var dayNames = glow.lang.replace(myDays, /(\d)/, function (day) {
  return " MTWTFSS".charAt(day - 1);
});
// dayNames now contains "M W S"
toArray

Converts an array-like object to a real array

Synopsis

glow.lang.toArray(arrayLike);

Parameters

arrayLike
Type

Any array-like object

Returns

Example

var a = glow.lang.toArray(glow.dom.get("a"));
trim

Removes leading and trailing whitespace from a string

Synopsis

glow.lang.trim(str);

Parameters

str
Type

String to trim

Returns

String without leading and trailing whitespace

Example

glow.lang.trim("  Hello World  "); // "Hello World"
Documentation generated by 2.1.0 on Thu Jul 07 2011 12:47:29 GMT+0100 (BST)

´óÏó´«Ã½ iD

´óÏó´«Ã½ navigation

´óÏó´«Ã½ © 2014 The ´óÏó´«Ã½ is not responsible for the content of external sites. Read more.

This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.