Вы должны использовать this
:
init: function() {
this.self = this;
this.self.doStuff();
},
edit Однако, это все еще свойство объекта "foo", и не очень ясно, откуда вы получаете экземпляры "foo". Другими словами, как написан ваш код, есть только один объект.
Кроме того, вы можете создать свой объект с закрытием:
var foo = function() {
var self = null;
return {
init: function() {
self = this;
self.doStuff();
},
doStuff: function() {
//stuff here
}
};
}();