Mit dieser Zuweisung _erzeugst_ du ja gerade eine neue Property des Window-Objekts. Da Du der Property eine Funktion zuweist, läßt sie sich danach wie eine Methode des Window-Objekts aufrufen.
window.onresize enthält ein Handle auf die Funktion func2, beim Aufruf von onresize() wird das Window-Objekt nach einer gleichnamigen Methode oder Property durchsucht, diese wird gefunden und - da es sich um einen Function-Pointer handelt - ausgeführt.