Другие ответили на проблему с областью действия, но вы также пытаетесь вызвать object.method2()
до того, как она существует.
Объявления функций обрабатываются до выполнения кода, поэтому вы можете вызывать объявленные функции выше кода, чем там, где они написаны, однако object.method2 создается при присваивании, поэтому object не имеет свойства method2 до тех пор, пока не будет выполнен код присваивания, то есть после вызова.