То, что у вас должно работать нормально. Важно помнить, что значение this
зависит от того, как вы вызываете функцию. Чтобы он работал так, как вы ожидаете, вам нужно использовать оператор new
для вызова функции в качестве конструктора:
var foo = new Foo(); //`this` refers to this instance of Foo
Вот рабочий пример .
Если вы вызываете функцию как обычно, this
ссылается на глобальный объект, у которого нет свойства DoStuff
, поэтому выдается ошибка TypeError. Вот сломанный пример .