Вставлю свои 5 копеек:
// Эту функцию можно вызвать только как конструктор (с new).
if (this.constructor !== arguments.callee) {
throw new Error("Constructor called like a simple function!");
Также эта проверка не позволит нормально реализовать наследование от вашего класса.
this.nameWidth = null;
...
this.path = null
...
this.pathC = null
Вот эти строки, ИМХО, лишние, это же javascript
// Пройденное расстояние между соседними точками пути, где находится
// игрок.
var s
// Полное расстояние между соседними точками пути, где находится
// игрок.
var S
Это дело вкуса, конечно, но имена переменных одной буквой в разном регистре обычно обфускаторы типа YUI делают, чтобы максимально код запутать