It seems odd to me to have the bind happen when constructing BehaviorWindow.prototype, instead of being a property of the instance.  Can anyone else (with more JavaScript experience than me) comment?

An alternate approach is to define the value lazily: the first time BehaviorWindow.start is called, if activityListener_ isn't yet defined (non-null), then call bind to create it.