В чём разница между setTimeOut(myfucn,1000) и setTimeOut(myfunc(),1000)?
Разница в том, что запись :
setTimeOut(myfunc(),1000)
Неправильная.

Так как, в setTimeout функцию нужно передавать, а не вызывать.
Во втором случае функция вызывается, в первом передаётся ссылка на неё.