博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js实现clone方法对各种数据类型进行复制
阅读量:6624 次
发布时间:2019-06-25

本文共 1114 字,大约阅读时间需要 3 分钟。

对各种数据类型进行复制,最初的思想是利用typeof判别数据类型后利用switch语句分别赋值,但是有个问题:null、Array和Object返回的都是‘object’,所以又要细分为三种情况编写代码。其中,要判断一个对象为数组使用的是:toString.apply(obj)方法。完整代码如下:

function clone(obj){            var copy;            switch(typeof obj){                case 'undefined':break;                case 'number':                case 'string':                case 'boolean':copy = obj;break;                case 'object':                    if(obj == null) copy = null;                    else if(toString.apply(obj) === '[object Array]')                    {                        copy = [];                        for(var i in obj) copy.push(clone(obj[i]));                    }                    else                     {                        copy = {};                        for(var j in obj)                            copy[j]= clone(obj[j]);                    }            }            return copy;        }        console.log(clone(true));        console.log(clone(12));        console.log(clone('abc'));        console.log(clone(null));        console.log(clone([1,2,3]));        console.log(clone({name:'zh',age:'18'}));

转载地址:http://hatpo.baihongyu.com/

你可能感兴趣的文章
为了好好看球,学霸们用深度学习重建整个比赛3D全息图
查看>>
浅谈持续集成
查看>>
【ZH奶酪】如何用textgenrnn处理中文
查看>>
CentOS双机中Docker下安装Mysql并配置互为主从模式
查看>>
OkHttp3源码详解(六) Okhttp任务队列工作原理
查看>>
这样做,轻松在Word中使用MathType
查看>>
VS Code非英语版本连接TFS错误解决方案
查看>>
angular5中使用jsonp请求页面
查看>>
sql in not in 案例用 exists not exists 代替
查看>>
使用newtonjson解决Json日期格式问题
查看>>
WEB前端资源代码:学习篇
查看>>
Nginx安装及配置详解【转】
查看>>
vue2.0 :style :class样式设置
查看>>
测不准原理主要指向微观
查看>>
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...
查看>>
Android之ExpandableList扩展用法(基于BaseExpandableListAdapter)
查看>>
解决注册表映像劫持
查看>>
基于Redis架构的短信平台系统
查看>>
Java Daemon Control
查看>>
The Quick Guide to Python Eggs
查看>>