Đây là một cách sử dụng tốt để with
: thêm các yếu tố mới vào Đối tượng, dựa trên các giá trị được lưu trữ trong Đối tượng đó. Đây là một ví dụ mà tôi vừa sử dụng ngày hôm nay:
Tôi đã có một bộ gạch có thể (có các lỗ mở hướng lên trên, dưới, trái hoặc phải) có thể được sử dụng và tôi muốn có một cách nhanh chóng để thêm danh sách các ô sẽ luôn được đặt và khóa khi bắt đầu trò chơi . Tôi không muốn tiếp tục gõ types.tbr
cho từng loại trong danh sách, vì vậy tôi chỉ sử dụng 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");