Ваш getNode будет работать некорректно, т.к. каждый раз будет перезаписываться в прототипе при создании нового объекта. Т.е. при вызове getNode для любого объекта Timer всегда будет извлекаться значение одной и той же переменной - захваченной при последнем создании объекта.
Более правильная реализация:
https://developer.mozilla.org/en-US/docs/Web/JavaS... , Emulating private methods with closures
проблема у такого подхода - всё это делается ценой рантайма - на каждый объект будут свои инстансы методов. Хотите нормальную инкапсуляцию? Берите TypeScript.