Dojo toolkit

Egyéb nyelvi kiterjesztések

Ha legacy módban használjuk a Dojo loader-t (async: false), akkor a dojo/_base modulok alapból betöltődnek.

Arrays (dojo/_base/array)

A natív Array kiterjesztéseit tartalmazza: indexOf(), lastIndexOf(), forEach(), filter(), map(), some(), every().

Példa: demo/Array.htm

require([ "dojo/_base/array" ], function(arrayUtil) { var original = [ "one", "two", "three", "four", "five" ]; var transformed = []; arrayUtil.forEach(original, function(item, index) { transformed.push({ id : index * 100, text : item }); }); // [ { id: 0, text: "one" }, { id: 100, text: "two" }, ... ] var mapped = arrayUtil.map(original, function(item, index) { return { id : index * 100, text : item }; }); // [ { id: 0, text: "one" }, { id: 100, text: "two" }, ... ] var arr1 = [ 1, 2, 3, 4, 5 ]; var arr2 = [ 1, 1, 1, 1, 1 ]; arrayUtil.every(arr1, function(item) { return item == 1; }); // returns false arrayUtil.some(arr1, function(item) { return item == 1; }); // returns true });

dojo/_base/lang

Ebben a modulban egyrészt a polimorfizmust támogató függvények találhatóak, másrészt olyan nyelvi konstrukciók, amik elengedhetetlenek a toolkit más részei számára: clone(), delegate(), exists(), extend(), hitch(), mixin(), partial(), replace(), setObject(), trim()

hitch

Amikor egy függvényt végrehajtunk, szem előtt kell tartani, hogy milyen kontextusban is fut. Ez főleg akkor érdekes, ha a függvényben használtuk a this-t, ami becsapós tud lenni. A this értékét explicit be lehet állítani az apply() és a call() metódusokkal, azonban ha például egy callback függvénynél szeretnénk módosítani ezt, akkor mindig szükségünk lesz egy wrapper függvényre, ami rontja az olvashatóságot. Erre ad egy kényelmi megoldást a Dojo. A hitch() visszatér egy olyan függvénnyel, ami egy adott függvényt egy adott kontextusban fog végrehajtani.

// this will be the input element not myObject on(dom.byId('myButton'), 'click', myObject.myHandler); on(dom.byId('myButton'), 'click', function(evt) { myObject.myHandler.call(myObject); }); on(dom.byId('myButton'), 'click', lang.hitch(myObject, 'myHandler'));

partial

Kidolgozásra vár.