Читаю тут исходники nodejs, и наткнулся на это
function Immediate() { }
Immediate.prototype.domain = undefined;
Immediate.prototype._onImmediate = undefined;
Immediate.prototype._idleNext = undefined;
Immediate.prototype._idlePrev = undefined;
...
Не пойму, зачем они сеттят поля прототипа в undefined? Допустим, они вызывают внутри setImmediate new Immediate. Так почему бы не положить все эти свойства непосредственно в созданный объект, зачем прототип менять каждый раз?