Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 740337 of util/list

  • Revision slug: Mozilla/Add-ons/SDK/Low-Level_APIs/util_list
  • Revision title: util/list
  • Revision id: 740337
  • Created:
  • Creator: evold
  • Is current revision? No
  • Comment _keyValueMap isn't used anymore

Revision Content

Experimental

Building blocks for composing lists.

Globals

Constructors

Iterable()

Constructs an Iterable object.

List(element1, element2, ...)

Constructor can takes any number of elements and creates an instance of List populated with the specified elements.

Parameters

element1 : Object|String|Number

element2 : Object|String|Number

... : Object|String|Number

Iterable

Base trait that can be used to compose traits with non-standard enumeration behaviors.

This trait is supposed to be used as part of a composition, since it only provides custom enumeration behavior to a composed object.

List

An ordered collection (also known as a sequence) disallowing duplicate elements. List is composed out of Iterable, therefore it provides custom enumeration behavior that is similar to array (enumerates only on the elements of the list).

List is a base trait and is meant to be part of a composition, since all of its API is private except for the length property.

Examples:

var MyList = List.compose({
  add: function add(item1, item2, /*item3...*/) {
    Array.slice(arguments).forEach(this._add.bind(this));
  },
  remove: function remove(item1, item2, /*item3...*/) {
    Array.slice(arguments).forEach(this._remove.bind(this));
  }
});
MyList('foo', 'bar', 'baz').length == 3;        // true
new MyList('new', 'keyword').length == 2;       // true
MyList.apply(null, [1, 2, 3]).length == 3;      // true
let list = MyList();
list.length == 0;                               // true
list.add(1, 2, 3) == 3;                         // true

 

Properties

length

Number of elements in this list.

Revision Source

<div class="note">
<p>Experimental</p>
</div>

<p><span class="seoSummary">Building blocks for composing lists.</span></p>

<h2 id="Globals">Globals</h2>

<h3 id="Constructors">Constructors</h3>

<h4 class="addon-sdk-api-name" id="Iterable()"><code>Iterable()</code></h4>

<p>Constructs an <code>Iterable</code> object.</p>

<h4 class="addon-sdk-api-name" id="List(element1.2C_element2.2C_...)"><code>List(element1, element2, ...)</code></h4>

<p>Constructor can takes any number of elements and creates an instance of <code>List</code> populated with the specified elements.</p>

<h5 id="Parameters">Parameters</h5>

<p><strong>element1 : Object|String|Number</strong></p>

<p><strong>element2 : Object|String|Number</strong></p>

<p><strong>... : Object|String|Number</strong></p>

<h2 id="Iterable">Iterable</h2>

<p>Base trait that can be used to compose traits with non-standard enumeration behaviors.</p>

<p>This trait is supposed to be used as part of a composition, since it only provides custom enumeration behavior to a composed object.</p>

<h2 id="List">List</h2>

<p>An ordered collection (also known as a sequence) disallowing duplicate elements. List is composed out of <code>Iterable</code>, therefore it provides custom enumeration behavior that is similar to array (enumerates only on the elements of the list).</p>

<p>List is a base trait and is meant to be part of a composition, since all of its API is private except for the <code>length</code> property.</p>

<p><strong>Examples:</strong></p>

<pre class="brush: js">
var MyList = List.compose({
  add: function add(item1, item2, /*item3...*/) {
    Array.slice(arguments).forEach(this._add.bind(this));
  },
  remove: function remove(item1, item2, /*item3...*/) {
    Array.slice(arguments).forEach(this._remove.bind(this));
  }
});
MyList('foo', 'bar', 'baz').length == 3;        // true
new MyList('new', 'keyword').length == 2;       // true
MyList.apply(null, [1, 2, 3]).length == 3;      // true
let list = MyList();
list.length == 0;                               // true
list.add(1, 2, 3) == 3;                         // true</pre>

<h3 id="sect1">&nbsp;</h3>

<h3 id="Properties_2">Properties</h3>

<h4 class="addon-sdk-api-name" id="length"><code>length</code></h4>

<p>Number of elements in this list.</p>
Revert to this revision