利用 jQuery 克隆对象
原文:http://my.opera.com/jlake/blog/2009/04/09/jquery-object
在网上搜索关键字 “javascript object clone”,可以找到很多实现克隆 Object 的代码,可是据我测试,让人满意的几乎没有。
今天发现 jQuery 的作者 John Resig 给别人的答复,尝试了一下确实很好用。
方法如下:
// 浅层复制(只复制顶层的非 object 元素) var newObject = jQuery.extend({}, oldObject); // 深层复制(一层一层往下复制直到最底层) var newObject = jQuery.extend(true, {}, oldObject);
测试如下:
var obj1 = { 'a': 's1', 'b': [1,2,3,{'a':'s2'}], 'c': {'a':'s3', 'b': [4,5,6]} } var obj2 = $.extend(true, {}, obj1); obj2.a='s1s1'; obj2.b[0]=100; obj2.c.b[0]=400; console.log(obj1); console.log(obj2);
obj2 内部元素的值改变之后,如果 obj1 的相应值保持不变,就说明复制成功。
ExtJS 也有类似的方法 Ext.apply,因此单独用 ExtJS 应该也能实现同样的功能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App