นี่คือการใช้ที่ดีสำหรับ with
: การเพิ่มองค์ประกอบใหม่ให้กับวัตถุตามตัวอักษรตามค่าที่เก็บไว้ในวัตถุนั้น นี่คือตัวอย่างที่ฉันเพิ่งใช้ในวันนี้:
ฉันมีชุดไพ่ที่เป็นไปได้ (โดยมีช่องเปิดหันด้านบน, ด้านล่าง, ซ้ายหรือขวา) ที่สามารถใช้ได้และฉันต้องการวิธีที่รวดเร็วในการเพิ่มรายการของกระเบื้องที่จะวางและล็อคไว้เสมอเมื่อเริ่มเกม . ฉันไม่ได้ต้องการที่จะให้การพิมพ์สำหรับแต่ละประเภทในรายการดังนั้นฉันเพิ่งใช้types.tbr
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");