• javascript 中对象的拷贝


    http://blog.csdn.net/i10630226/article/details/52431562

    在javascript中,对象都是值引用,也就是说,如果你常规的使用 "=" 来获取一个对象并且赋值给新的对象后,当你对这个新对象进行篡改后,原始对象也会随着改变。如下:

    var old = {foo : ["a","b","c"]};
    var _new = old;
    console.log(_new.foo);   // ["a", "b", "c"]
    _new.foo.unshift("d");   // 4 
    console.log(old.foo);    // ["d", "a", "b", "c"]

    所以想要拷贝一个对象不是件容易的事。

    方法1 : 递归拷贝

    function deepCopy(p, c) {
        var c = c || {};
        for (var i in p) {
          if (typeof p[i] === 'object') {
            c[i] = (p[i].constructor === Array) ? [] : {};
            deepCopy(p[i], c[i]);
          } else {
             c[i] = p[i];
          }
        }
        return c;
    }

    方法2 :jQuery 中$.extend()

    $.extend( true, {}, [object] );
  • 相关阅读:
    初识spring
    关于导入别人的web项目,tomcat无法显示的问题
    doPost无法跳转显示信息,只能下载文件查看
    socket网络编程
    log日志文件
    第三方模块安装
    __name__ __doc__ __package__
    格式化
    导入模块
    python正则表达式补充
  • 原文地址:https://www.cnblogs.com/CyLee/p/6476266.html
Copyright © 2020-2023  润新知