zoukankan      html  css  js  c++  java
  • 对 JavaScript 中的5种主要的数据类型进行值复制

    定义一个函数 clone(),可以对 JavaScript 中的5种主要的数据类型(包括 Number、String、Object、Array、Boolean)进行值复制

    1. 使用 typeof 判断值得类型;
    2. 使用 toString 区分数组和对象;
    3. 使用递归函数;
    function clone(obj) {
        //判断是对象,就进行循环复制
        if (typeof obj === 'object' && typeof obj !== 'null') {
            // 区分是数组还是对象,创建空的数组或对象
            var o = Object.prototype.toString.call(obj).slice(8, -1) === "Array" ? [] : {};
            for (var k in obj) {
                // 如果属性对应的值为对象,则递归复制
                if(typeof obj[k] === 'object' && typeof obj[k] !== 'null'){
                    o[k] = clone(obj[k])
                }else{
                    o[k] = obj[k];
                }
            }
        }else{ //不为对象,直接把值返回
            return obj;
        }
        return o;
    }
    

    其中:slice(8,-1)意思是从第8位开始(包含第8位)到最后一位之前(-1的意思就是最后一位,不包含最后一位);
    Object.prototype.toString.call(a)这个是用来判断数据类型,
    如果a是数字,得出的结果是[object Number],从零开始数,第8位就是N,最后一位的前一位就是r,所以取得Number;
    如果a是字符串,得出结果是[object String],第8位S,最后一位的前一位g,取得String

  • 相关阅读:
    元素模式
    完美C++(第5版)(双色)
    ASP.NET Web API 2框架揭秘
    跨终端 Web
    WebKit技术内幕
    云计算时代——本质、技术、创新、战略
    互联网创业密码
    Netty权威指南
    Robot Framework 学习笔记(二)-------第一个脚本
    Robot Framework学习笔记(一)------环境搭建
  • 原文地址:https://www.cnblogs.com/cckui/p/8316654.html
Copyright © 2011-2022 走看看