OMG, you've been under Brian's influence :-)
Excellent answer and valid theoretical point, but I disagree about caching a dictionary of screenshot names. If you think you must cache something, why not a dictionary of *all* the costumes names?

But, you know, arrays, and even linked lists are pretty darned fast in JavaScript, even with hundreds of thousands entries. I mean, we're like constantly iterating over pixel data for collision detection and such, so I would expect that a wardrobe with a few costumes (even if it's a few hundred) won't make any difference. But I'm curious: Did you conduct any tests with just using contains() on the costume list vs. using a session-cached dictionary that prompted you to do this optimization?