^ Thanks for sharing that. I hadn't heard of Synapse but its the most unobtrusive data-binding lib I've seen so far. Very cool indeed!
As far as implementation goes, it still feels "wrong" to me. I love syntactic sugar when possible, but forcing one paradigm on another without measurable benefit (aside from one's comfort/preference) just seems superfluous to me.
I would personally implement it using a modular FP pattern, you get constructors, private methods and all those juicy bits we love about OO, except we are in a completely functional state of mind.
https://github.com/bruth/synapse/blob/master/src/synapse.cof...
Here's the documentation, to get some context:
http://bruth.github.com/synapse/docs/#learn
Do you feel that this code would be significantly improved by using JavaScript's bare prototype pattern instead?