If for whatever reason you decide to pass init as a call back then the value of "this" might not what you would expect it to be.
For example if you do something like
var count = 2;
setTimeout(obj.init, 1000);
When init gets fired the console will actually log
1
2
instead of
1
1
Because the value of "this" in the init function would be binded to the global window object.
Depending on how you're calling the init function, the value of this is completely different.
obj.init() //this is binded to obj
new obj.init() //this is binded to a COPY of obj.
setTimeout(obj.init,1000); //this is binded to the global window obj
obj.init.call(obj2); //this is binded to obj2
var foo = {};
foo.bar = obj.init;
foo.bar(); //this is binded to foo;