I'm struggling a lot with Javascript prototyping; I don't seem to understand when I should be declaring an attribute in the prototype vs instantiation. Particularly, I don't understand, why in my code attached (a basic exercise in building a little Router class to treat a document more like an app than a page), attributes set at instantiation are persisting and thus accumulating in what I intend to be separate objects entirely. 

Mostly this is a learning exercise, but I've scaled back some of the original code to help with contextual obfuscation\*.

Code is here: <http://codepen.io/anon/pen/xGNmWM>

Basically, each time you click a link, the `data-route` attribute on the element should be picked up an event listener, a new `Route` object should be instantiated (and passed information about the intended route); finally the `Router` class should actually "launch" the Route, ie. make an ajax request or do some in-document stuff, whatever. 

Right now, the `Route.url.url` attribute should be, in my obviously wrong understanding, created anew each time and then informed by passed data. Somehow, this attribute is persisting and thus accumulating passed information from each click.

I truly don't understand *why*.

\*\*I have not removed anything that would effect my question; really it could be trimmed back even more but I realize the integrity of the question relies on a reasonable facsimile of the original code.