转至:http://apps.hi.baidu.com/share/detail/518475

在js里没有类似JAVA的clone方法,无法实现对对象的克隆,一般使用等号操作符来传递对象,但这样就造成了指针关联问题,修改任何一个对象,其关 联的对象也会被改变,但很多时候我们只想得到一个对象的拷贝,而非引用。今日偶就遇到了这个问题,以前还真没有注意过这个,朋友给找了两个方法,感觉写的 都不错。只是实现稍有不同,但大体原理是相对的,即逐项复制对象内容。

相信这段代码对很多web开发的朋友都会有用。

方法一:定义一个clone方法来实现。

function clone(myObj){

if(typeof(myObj) != 'object') return myObj;

if(myObj == null) return myObj;

var myNewObj = new Object();

for(var i in myObj)

myNewObj[i] = clone(myObj[i]);

return myNewObj;

}

方法二:通过object原型扩展实现Object.prototype.Clone = function()

{

var objClone;

if ( this.constructor == Object ) objClone = new this.constructor();

else objClone = new this.constructor(this.valueOf());

for ( var key in this )

{

if ( objClone[key] != this[key] )

{

if ( typeof(this[key]) == 'object' )

{

objClone[key] = this[key].Clone();

}

else

{

objClone[key] = this[key];

}

}

}

objClone.toString = this.toString;

objClone.valueOf = this.valueOf;

return objClone;

}

js 操作java对象_js对象复制相关推荐

  1. js判断对象是否为空对象_js对象

    七种数据类型 number string bool symbol undefined null object 五个Falsy 值 undefined null 0 NaN '' 对象 object 第 ...

  2. 每日一题_JavaScript.利用Js操作frameset框架集对象实现购物车?

    具体需求: 1. 框架集中包含上下两个框架,上面为购物车,下面为商品列表,点击商品列表中购买,实现购物车中额数字增加并传递商品ID 实现思路: 具体代码: shopping.html <!DOC ...

  3. js 操作java对象_JavaScript 对象基础

    JavaScript 对象基础 JavaScript 对象的基本形式.对象的创建方式.构造函数.包装类等 对象的格式 基本格式 对象使用一个{}进行包裹,内部属性以键值对形式声明 示例 var tea ...

  4. 字符串对象转数组对象_js对象转数组的方法 js怎么将数组对象转变成字符串

    只需要一句,arr.__proto__=[];但是要注意浏览器支持__proto__才行,最新的浏览器应该都支持. 以下两种都可以解决此问题: function transform(obj){ var ...

  5. js字符串怎么转python对象_js 对象转换为字符串

    强制转换 强制转换主要指使用Number.String和Boolean三个构造函数,手动将各种类型的值,转换成数字.字符串或者布尔值. Number() 使用Number函数,可以将任意类型的值转化成 ...

  6. 作用域js和java区别_js作用域理解

    学习笔记:(图中水印来自同名微信订阅号,现已改名为'码上猿梦') //javaScript作用域: //首先声明一点,js中没有块级作用域, 比如java中for循环中for(int i = 0; i ...

  7. js编码java解码_Js编码和Java后台解码

    注: 在使用get提交,url传递参数的时候,会带来中文乱码的问题,对此可以使用js编码来解决. Js编码的几种方式区别: 1.window.escape()与HttpUtility.UrlEncod ...

  8. js编码java解码_js编码处理(转)

    1.使用 JS中的 encodeURIComponent或 encodeURI方法. 说明: encodeURIComponent(String) 对传递参数进行设置.不编码字符有 71个: !, ' ...

  9. js编码java解码_JS编解码与Java编解码的对应关系

    最近前段在导出数据时会遇到"illegal character"的异常错误,结果发现是在请求地址中请求参数包含了空白字符(其编码为%C2%A0)或者是空格字符(其编码为%20),之 ...

最新文章

  1. scvmm2008R2创建委派管理员角色
  2. 恒安嘉新面试题java_面了三个大厂,终于拿到offer,数年Java最经典的面试题总结...
  3. shell 调试 2例
  4. MVC 3.0 在各个版本IIS中的部署
  5. C语言程序设计 | 程序环境和预处理:翻译环境和执行环境、宏、条件编译
  6. 和虫师一起学python(7)
  7. HDU 3555 - Bomb
  8. Magicodes.IE 2.4发布
  9. 小程序监听android返回键,如何监听小程序返回按钮事件?
  10. [ZJOI2016]大森林
  11. 上海大学计算机学院调剂,上海大学微电子学院2021年硕士研究生调剂有关事项说明...
  12. 系统学习机器学习之特征工程(三)--稀疏特征之FM算法
  13. 双击运行 jar 文件
  14. CronTrigger(重要,非常强大)
  15. WEB2.0是什么东东?[转]
  16. 不安装office的情况下如何实现对excel的导入导出
  17. pg_partman
  18. 柯朗微积分与数学分析习题选解(1.1 节 a)
  19. 学习笔记:min-width和min-height
  20. Lycn 2013 with SQL AlwaysOn 「一」建立AlwaysOn

热门文章

  1. Comsenz 核心产品 Discuz! X3.3 正式版【2017-07-01】 -论坛搭建
  2. Spring Boot学习总结(19)——使用Redisson实现分布式锁
  3. Mysql学习总结(65)——项目实战中常用SQL实践总结
  4. Windows学习总结(14)——最常用的Windows快捷键再总结
  5. aix下oracle备份脚本,AIX下oracle的自动备份
  6. 《规范敏捷交付:企业级敏捷软件交付的方法与实践》——3.11 观点总结
  7. 应用服务器Glassfish任意文件读取漏洞
  8. Redis 2.8.9源码 - Redis中的字符串实现 sds
  9. 下了班----你干啥
  10. 使用git版本管理时的免密问题