zoukankan      html  css  js  c++  java
  • JS中有关(...)的介绍

    1,深拷贝一个对象

      

       如上图所示,obj和tmp是完全两个独立的对象,互不影响。

    2,数组复制

      

       如上图所示,arr和tmp是两个完全独立的数组,彼此之间的值互不影响。

    3,函数形参中的使用

      

       这里的...args,是对test函数中多余的参数进行收集,并转换成数组的形式进入函数体中

    4,一种特殊情况,当数组里面套对象的时候,我们用[...]依然是无法深拷贝一份数据的,这个时候我们就要自己写递归函数了

      案例:

      

      解决办法:自己写一个函数

    function copySelf(obj) {
      var newobj = obj.constructor === Array ? [] : {};
      if (typeof obj !== "object") {
        return;
      }
      for (var i in obj) {
        newobj[i] = typeof obj[i] === "object" ? copySelf(obj[i]) : obj[i];
      }
      return newobj;
    }

    我们可以用 copySelf 函数去深拷贝一份数据

      结果:

      

  • 相关阅读:
    超媒体
    超文本
    视频文件格式
    web.py 模板错误记录
    pip常用记录
    微信公众号绑定服务器 Flask版
    scrapy 简单防封
    python 手写队列
    jQuery个人总结
    PHP用url传递数组
  • 原文地址:https://www.cnblogs.com/song-zmin/p/11849942.html
Copyright © 2011-2022 走看看