There's a lot of special rules here, though. "Effective Javascript", in the the objects chapter is the best guide I've read to understanding JS objects. A quick tip is to implement lightweight dictionaries as literal objects to avoid prototype pollution.