This is due to an earlier point in the same document:
The object has a prototype, so there are default keys on the map.
Traditionally, when you iterate through an object (this is what they mean with “look [keys] up dynamically”), you need to filter the properties of the prototype:
for( var key in obj ) {
if( obj.hasOwnProperty(key) ) {
}
}
When you iterate over a map, you can skip the additional check because it does not have its own properties mixed with the properties of the prototype.