Als Laie finde ich die die Beispielsituation zu komplex, desweiteren gehst du gar nicht auf die "placeholder"-Funktion ein, die dir das Zustandsobjekt generiert, später dann auch noch Jquery.
Artikel um diesbezügliche Erläuterungen ergänzt.
Und das beste... Anstatt direkt beim Eventhandler auf den übergebenen Parameter zu reagieren, greifst du auf ein globales Objekt zurück. Mit Javascript und dessen Events respektive den Eventhandlern hab ich schon ein paar mal rumgespielt, dadurch kam mir dein Handler sonderbar vor, also kurz gesucht:
window.onpopstate = function(event) { console.log("location: " + document.location + ", state: " + JSON.stringify(event.state)); };
Wie (traditionel, jquery, modern) Du den Eventlistener notierst ist in diesem Zusammenhang uninteressant. Btw., window ist ein global verfügbares Objekt.
Schöne Grüße!