随手写了个能真复制对象的函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随手写了个能真复制对象的函数相关的知识,希望对你有一定的参考价值。
简单来说就是通过递归调用自身来完成对对象的完整复制。
然而对于有属性的函数依旧无解,期待找到解决办法。
除此之外,测试了一下并没有发现什么问题,应该能用。
function copy(objIn,objOut){ for(var prop in objIn){ switch (typeof objIn[prop]){ case "number":objOut[prop]=objIn[prop]; break; case "string":objOut[prop]=objIn[prop]; break; case "object":{ var temp=(objIn[prop].constructor==Array)?[]:{}; copy(objIn[prop],temp); objOut[prop]=temp; break; } case "function":{ //如果函数定义了属性,那么这一段代码并没有实现真正的复制。 objOut[prop]=objIn[prop]; break; } default:{ throw new Error("type error!"); } } } }
以上是关于随手写了个能真复制对象的函数的主要内容,如果未能解决你的问题,请参考以下文章
TS编程——面向对象随手录——接口_命名空间——重构javaScrip 3D引擎代码部分——函数