base.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * desc: webapp模型基类
  3. * author: wangyang
  4. * date: 2015-04-11
  5. */
  6. define(['storage'], function(storage) {
  7. var BaseObject = function() {
  8. this.storagePrefix = '';
  9. };
  10. BaseObject.prototype = {
  11. set: function(key, value, persisted) {
  12. this[key] = value;
  13. if (typeof persisted !== 'boolean') {
  14. persisted = false;
  15. }
  16. if (persisted) {
  17. storage.setItem(this.storagePrefix + key, value);
  18. }
  19. },
  20. get: function(key, default_value) {
  21. if (typeof default_value == 'undefined') {
  22. default_value = null;
  23. }
  24. return this.hasOwnProperty(key) && this[key] !== null ? this[key] : default_value;
  25. },
  26. setCache: function(key, value) {
  27. var val = typeof(value) != 'undefined' ? value : (this.hasOwnProperty(key) ? this[key] : null);
  28. storage.setItem(this.storagePrefix + key, val);
  29. },
  30. getCache: function(key, cache_time, default_value) {
  31. if (typeof default_value == 'undefined') {
  32. default_value = null;
  33. }
  34. var cache = storage.getItem(this.storagePrefix + key, cache_time);
  35. return cache ? cache : default_value;
  36. },
  37. remove: function(key) {
  38. this[key] = null;
  39. storage.removeItem(this.storagePrefix + key);
  40. }
  41. };
  42. return BaseObject;
  43. });