您现在的位置:首页 >> 前端 >> 内容

各种数据类型的复制

时间:2017/7/14 10:33:00 点击:

  核心提示:function clone(obj) {var cloneObj;switch (typeof obj){case undefined :break;case string :case number...
function clone(obj) {
    var cloneObj;
    switch (typeof obj){
        case "undefined" :
            break;
        case "string" :
        case "number" :
        case "boolean" :
            cloneObj = obj;
            break;
        case "object" :
            if(obj == null) cloneObj = null;
            else if(Object.prototype.toString.call(obj) === "[object Object]"){
                cloneObj = {};
                for(var key in obj){
                    cloneObj[key] = clone(obj[key])
                }
            }
            else if(Object.prototype.toString.call(obj) === "[object Array]"){
                cloneObj = [];
                for(var i=0 ; i

这个问题主要要考虑到基本数据类型和引用数据类型,基本数据类型可以直接赋值进行复制,引用数据类型则不能直接赋值复制,需要判断引用数据类型是null、Object、Array中的哪一种,然后进行遍历复制。

Object.prototype.toString方法详解这里,注意:此toString不同于彼toString(),前面的没有括号哟!!

Object.prototype.toString也可以直接用toString代替

作者:网络 来源:小小发的博客