 <p>"Hash table" is just a fancier way of saying "ordinary Javascript object". What the instructor means by "handle to its definition" is just another way of saying "the function that acts as a constructor for the class".</p> <p>Ultimately, what he means by the statement you mentioned:</p> <blockquote> <p>each overloaded entity definition will update a hash table with a pointer to its class definition</p> </blockquote> <p>is the following:</p> <ul> <li>All "subclasses" of Entity will register their constructor function in a single shared hashmap/object using the key which is the <code>type</code> value.</li> <li>This allows you to get the constructor function (in other words, the function to call <code>new</code> on, which will return an instance of that entity) for any type by accessing <code>gGameEngine.factory[type]</code>.</li> </ul> <p>This is nice, because whenever a programmer adds a new type of entity, so long as they remember to add a new entry to that <code>gGameEngine.factory</code> object with the correct key, then that object will contain everything you need to construct any type of supported object.</p> <p>So the code that iterates over the JSON structure generated by the level editor can create an instance of any type the same way, using something like:</p> <pre><code>var typeConstructor = gGameEngine.factory(tileSpec.type), instance; if (typeConstructor) { instance = new(typeConstructor)(tileSpec /* or whatever params */); } </code></pre> <p>This is similar to the code visible at around the 1 minute mark of the video you linked to.</p> <p>Make sense now?</p>