Advertisement
Guest User

Untitled

a guest
Apr 29th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. _.own = function(obj, options) {
  2. if (!obj || (typeof(obj)!='object')) return obj;
  3. options || (options = {});
  4. if (_.isArray(obj)) {
  5. if (options.share_collection) { _.each(obj, function(value) { _.own(value, {prefer_clone: options.prefer_clone}); }); return obj; }
  6. else { var a_clone = []; _.each(obj, function(value) { a_clone.push(_.own(value, {prefer_clone: options.prefer_clone})); }); return a_clone; }
  7. }
  8. else if (options.properties) {
  9. if (options.share_collection) { _.each(obj, function(value, key) { _.own(value, {prefer_clone: options.prefer_clone}); }); return obj; }
  10. else { var o_clone = {}; _.each(obj, function(value, key) { o_clone[key] = _.own(value, {prefer_clone: options.prefer_clone}); }); return o_clone; }
  11. }
  12. else if (obj.retain) {
  13. if (options.prefer_clone && obj.clone) return obj.clone();
  14. else obj.retain();
  15. }
  16. else if (obj.clone) return obj.clone();
  17. return obj;
  18. };
  19.  
  20. _.disown = function(obj, options) {
  21. if (!obj || (typeof(obj)!='object')) return obj;
  22. options || (options = {});
  23. if (_.isArray(obj)) {
  24. if (options.clear_values) { _.each(obj, function(value, index) { _.disown(value); obj[index]=null; }); return obj; }
  25. else {
  26. _.each(obj, function(value) { _.disown(value); });
  27. obj.length=0; return obj;
  28. }
  29. }
  30. else if (options.properties) {
  31. if (options.clear_values) { _.each(obj, function(value, key) { _.disown(value); obj[key]=null; }); return obj; }
  32. else {
  33. _.each(obj, function(value) { _.disown(value); });
  34. for(key in obj) { delete obj[key]; }
  35. return obj;
  36. }
  37. }
  38. else if (obj.release) obj.release();
  39. else if (obj.destroy) obj.destroy();
  40. return obj;
  41. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement