Voici une bonne utilisation pour with
: ajouter de nouveaux éléments à un objet littéral, en fonction des valeurs stockées dans cet objet. Voici un exemple que je viens d'utiliser aujourd'hui:
J'avais un ensemble de tuiles possibles (avec des ouvertures orientées vers le haut, le bas, la gauche ou la droite) qui pouvaient être utilisées, et je voulais un moyen rapide d'ajouter une liste de tuiles qui seraient toujours placées et verrouillées au début du jeu. . Je ne voulais pas continuer à taper types.tbr
pour chaque type de la liste, alors je viens de l'utiliser with
.
Tile.types = (function(t,l,b,r) {
function j(a) { return a.join(' '); }
// all possible types
var types = {
br: j( [b,r]),
lbr: j([l,b,r]),
lb: j([l,b] ),
tbr: j([t,b,r]),
tbl: j([t,b,l]),
tlr: j([t,l,r]),
tr: j([t,r] ),
tl: j([t,l] ),
locked: []
};
// store starting (base/locked) tiles in types.locked
with( types ) { locked = [
br, lbr, lbr, lb,
tbr, tbr, lbr, tbl,
tbr, tlr, tbl, tbl,
tr, tlr, tlr, tl
] }
return types;
})("top","left","bottom","right");