原文: https://howtodoinjava.com/jquery/jquery-deep-cloning-example/

jQuery 深度克隆意味着独立更改原始对象或克隆对象不会对其他对象产生影响。 换句话说,两个对象(原始对象和克隆对象)都彼此完全独立。 您可以在对象克隆的指南中阅读有关克隆的更多信息。

jQuery 深度克隆示例 - 图1

使用方法:

  1. var clonedObject = jQuery.extend({}, originalObject);

jQuery 深度克隆示例

在 jquery 克隆示例代码中,我创建了一个User对象并创建了两个属性,即名字和姓氏。 然后,我为这些属性创建了两个设置器函数,还使用了原型属性添加了另一种方法。

实际上,使用“extend”关键字的 jquery 克隆机制用于将两个或多个对象的属性和属性复制/合并到第三个或完全新的对象中。 可以在中找到更多详细信息。

示例代码如下所示:

  1. //Create the object
  2. var user = new User($("#fname").val(),$("#lname").val());
  3. //Check the original object values
  4. $("#origUser").html(user.getUserName());
  5. //Cloning is done here
  6. var cloned = $.extend({}, user);
  7. //Change the firstname property
  8. user.fname = 'Noname';
  9. //Let's check the original and cloned object again
  10. $("#origAfterUser").html(user.getUserName());
  11. //Verify cloned is same as original in starting
  12. $("#clonedUser").html(cloned.getUserName());

示例应用

  1. <HTML>
  2. <HEAD>
  3. <TITLE> jQuery Cloning Example </TITLE>
  4. <script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js&quot;></script>
  5. <SCRIPT LANGUAGE=&quot;JAVASCRIPT&quot;>
  6. var User = function(fname,lname){
  7. this.fname = fname,
  8. this.lname = lname,
  9. this.getFName = function(){
  10. return this.fname;
  11. },
  12. this.getLName = function(){
  13. return this.lname;
  14. }
  15. };
  16. User.prototype.getUserName = function() {
  17. return (this.getFName() + &quot; &quot; + this.getLName());
  18. }
  19. function cloneDemo(){
  20. //Create the object
  21. var user = new User($(&quot;#fname&quot;).val(),$(&quot;#lname&quot;).val());
  22. //Check the original object values
  23. $(&quot;#origUser&quot;).html(user.getUserName());
  24. //Cloning is done here
  25. var cloned = $.extend({}, user);
  26. //Change the firstname property
  27. user.fname = 'Noname';
  28. //Let's check the original and cloned object again
  29. $(&quot;#origAfterUser&quot;).html(user.getUserName());
  30. //Verify cloned is same as original in starting
  31. $(&quot;#clonedUser&quot;).html(cloned.getUserName());
  32. }
  33. </SCRIPT>
  34. </HEAD>
  35. <BODY>
  36. <h3>jQuery Cloning Example</h3>
  37. To clone an object, you can directly use clone() method.
  38. <p>
  39. First Name : <input type='text' id='fname'/>
  40. </p>
  41. <p>
  42. Last Name : <input type='text' id='lname'/>
  43. </p>
  44. <p>
  45. <input type='button' value='Create above User and Clone it' onclick=&quot;cloneDemo();&quot;/>
  46. </p>
  47. <p>I have changed the first name of orginal Object to 'Noname'</p>
  48. <p>
  49. Original User : <span id='origUser'></span>
  50. </p>
  51. <p>
  52. After Cloning Original User : <span id='origAfterUser'></span>
  53. </p>
  54. <p>
  55. Cloned User Still is : <span id='clonedUser'></span>
  56. </p>
  57. </BODY>
  58. </HTML>

祝您学习愉快!