a) The second in the last line sets that the "cache" property on the getElements object is an object. Essentially initializing this property.
b) This will be a cache, think of getElements as an object, and the cache is a hash that holds onto the results.
c) Yes, you still get the same result, because the cache just caches, it does not change the answer anyway, it just potentially speeds up the process.
d) , , .
e) , , "getElements", .