zoukankan      html  css  js  c++  java
  • jquery深度克隆javascript对象

    利用jquery 的extend方法:
    extend([param1,]obj1,obj2); 
    说明:1.>将对象obj2复制到obj1中

          2>param1,为布尔类型,true 表示深度复制 
    eg:
    1.  var object1 = {
    2. apple: 0,
    3. banana: {weight: 52, price: 100},
    4. cherry: 97
    5.    };
    6.     var object2 = {
    7. banana: {price: 200},
    8. durian: 100
    9.    };
    10.     $.extend(true,object1, object2);//深度复制,要复制以个新对象,可将object1写成{}
    11.     object2.banana.price=100;//修改值
    12. alert(object1.banana.price)//深度复制,object1中的值没有改变

    javascript 实现:

    1.     function cloneObject(obj) {
    2. var clone = {};
    3.        for(var i in obj) {
    4.  if(typeof(obj[i])=="object")
    5.   clone[i] = cloneObject(obj[i]);      
    6.  else
    7. clone[i] = obj[i];
    8.   }
    9.   return clone;   
    10. }
    eg:
      1.     function cloneObject(obj) {
      2. var clone = {};
      3.        for(var i in obj) {
      4.  if(typeof(obj[i])=="object")
      5.     var object1 = {
      6. apple: 0,
      7. banana: {weight: 52, price: 100},
      8. cherry: 97  
      9.  };
      10.     var  obj= cloneObject(object1 );
      11. object2.banana.price=200;//修改值
      12.     alert( obj.banana.price )//仍然输出100
  • 相关阅读:
    Entropy
    MonkeyEatsPeach
    python中使用可选参数
    java中二元数组的构建
    静态语言和动态语言
    开胃菜
    python 工具箱
    python处理多层嵌套列表
    小球落体
    LoadRunner:Error 27796
  • 原文地址:https://www.cnblogs.com/douglasvegas/p/4774408.html
Copyright © 2011-2022 走看看