title: Durandal constructor function but still want to remember data
body: <p>Let's say I have the following durandal code:</p>
  
  <pre><code>define(['durandal/app', 'plugins/http'], function (app) {
      var vm = function(){
          var self = this;
          self.myData = ko.observableArray([]);
          }
  
      };
      vm.activate = function() {
          this.myData([]);
      };
      vm.deactivate = function(){
  
      };
      return vm;
  };
  </code></pre>
  
  <p>I know by returning a constructor function, every time the view model is activated, it will
  return a new instance.</p>
  
  <p>My question is: is there anyway that when I access, if there's <code>myData()</code> from previous access, then I don't want to set  <code>this.myData([]);</code> but to use the previous <code>myData()</code>?</p>
  
  <p>I know by returning a singleton object can do it, but if I want to keep the constructor function, can I do it? </p>
  
  <p>Another question, what's the point of having activate and deactivate in the above code, if you are going to get new instance, therefore guaranteed a 'clean' object anyway?</p>