code: function(func, context, oldObserved, onchanged) {
              // Call the function, get the value as well as the observed objects and events
              var info = can.__read(func, context),
                  // The objects-event pairs that must be bound to
                  newObserveSet = info.observed;
              // Go through what needs to be observed.
              bindNewSet(oldObserved, newObserveSet, onchanged);
              unbindOldSet(oldObserved, onchanged);
  
              return info;
          }
docs: ### getValueAndBind Calls a function and sets up bindings to call `onchanged` when events from its "Observed" object are triggered. Removes bindings from `oldObserved` that are no longer needed. - func - the function to call. - context - the `this` of the function. - oldObserved - an object that contains what has already been bound to - onchanged - the function to call when any change occurs