Hier ist eine gute Verwendung für with
: Hinzufügen neuer Elemente zu einem Objektliteral, basierend auf den in diesem Objekt gespeicherten Werten. Hier ist ein Beispiel, das ich heute verwendet habe:
Ich hatte eine Reihe möglicher Kacheln (mit Öffnungen nach oben, unten, links oder rechts), die verwendet werden konnten, und ich wollte schnell eine Liste von Kacheln hinzufügen, die zu Beginn des Spiels immer platziert und gesperrt wurden . Ich wollte nicht types.tbr
für jeden Typ in der Liste weiter tippen, also habe ich nur verwendet 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");