zoukankan      html  css  js  c++  java
  • 实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。

    function clone(obj) {
        var o;
        switch (typeof obj) {
            case "undefined":
                break;
            case "string":
                o = obj + "";
                break;
            case "number":
                o = obj - 0;
                break;
            case "boolean":
                o = obj;
                break;
            case "object": // object 分为两种情况 对象(Object)或数组(Array)
                if (obj === null) {
                    o = null;
                } else {
                    if (Object.prototype.toString.call(obj).slice(8, -1) === "Array") {
                        o = [];
                        for (var i = 0; i < obj.length; i++) {
                            o.push(clone(obj[i]));
                        }
                    } else {
                        o = {};
                        for (var k in obj) {
                            o[k] = clone(obj[k]);
                        }
                    }
                }
                break;
            default:
                o = obj;
                break;
        }
        return o;
    }

    functionclone(obj) {var o;switch (typeof obj) {case"undefined":break;case"string": o = obj +"";break;case"number": o = obj -0;break;case"boolean": o = obj;break;case"object":// object 分为两种情况 对象(Object)或数组(Array)if (obj ===null) { o =null;}else{if (Object.prototype.toString.call(obj).slice(8,-1) ==="Array") { o = [];for (var i =0; i <obj.length; i++) {o.push(clone(obj[i]));}}else{ o ={};for (var k in obj) { o[k] =clone(obj[k]);}}}break;default: o = obj;break;}return o;}

  • 相关阅读:
    CRM4.0多组织安装和设置
    如何找回你的VirtualPC2007控制台
    线性表
    时间复杂度
    栈与队列
    字符串排序问题
    浙江企业网喜讯之一
    初次体验到C#范型的魅力
    ajax 或 js 异步判断用户名是否存在
    html基础知识1(基本标签)20170307
  • 原文地址:https://www.cnblogs.com/slb1994/p/6565290.html
Copyright © 2011-2022 走看看