网站首页 > 基础教程 正文
在网上搜索关键字 “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 应该也能实现同样的功能。
猜你喜欢
- 2024-10-12 HTML编辑器从WORD复制粘贴图片 html复制粘贴快捷键
- 2024-10-12 一文讲解关于jQuery语法 jquery的语法
- 2024-10-12 19、深拷贝浅拷贝的区别?如何实现一个深拷贝?
- 2024-10-12 14个jQuery 实时搜索插件,用了都说好!
- 2024-10-12 如何复制WORD的图文到富文本框编辑器中自动上传
- 2024-10-12 提高Web开发速度技巧 提高web开发速度技巧是什么
- 2024-10-12 不要被误导了:JavaScript深拷贝的5种方法
- 2024-10-12 AJAX with JSP使用jQuery示例 简要说明jquery中的ajax方法使用
- 2024-10-12 碎片时间学编程「14」:如何在 JavaScript 中克隆对象?
- 2024-10-12 30、jQuery 的属性拷贝的实现原理是什么,如何实现深浅拷贝?
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)