Вы можете рассмотреть возможность включения этих методов в область видимости класса, если все еще существует неоднозначность метода, вы можете использовать точечную нотацию для разрешения неоднозначности пространства имен.this.name работает, потому что он определен в той же функции, однако другие функции не знают, что они должны существовать в той же области видимости, поэтому они возвращают undefined.
ctx не определен в drawUser (), потому чтопараметры объявлены неправильно.Параметры Javascrpit должны рассматриваться как (примечание, они не принимают ключевое слово var):
function methodName( aParam : aParamType, bParam : bParamType) {}
классы объявляются с использованием ключевого слова class [необязательно, опускаются квадратные скобки]
[private public static] class ClassName [extends ParentClass] { /*methods here*/ }
hopeэто помогает.