Вот про наследование. Зачем инстансу Dictionary иметь собственное свойство add? Он мог прекрасно делегировать его из прототипа конструктора. Соответственно ему незачем замыкать переменные в теле конструктора.

```js
var Dictionary = function () {
    this.dictionary = {};
};

Dictionary.prototype = {
    add: function (word, predecessors) {
        // implementation
    }
};

new Dictionary();
```