文档章节

JavaScript Array.push()方法与浅复制

v
 vincedd
发布于 2017/05/02 13:35
字数 168
阅读 10
收藏 0

今天码代码的过程中遇到一个问题,在此记录一下,简单地说,当使用Array.push()方法向数组内添加一个引用类型的变量时,只是一个浅拷贝操作,当对变量进行操作后,数组内的变量值也会随之发生变化,测试代码如下:

let    a = [],
        b = [1, 2, 3];

    a.push([34]);
    a.push([3, 4]);
    a.push(b);

    console.log(b[0]);//1
    console.log(a[2][0]);//1
    b[0] = "test";
    console.log(b[0]);//test
    console.log(a[2][0]);test

查阅相关资料后得知,如果希望将一个引用类型变量深复制进一个数组,可使用js的slice和concat方法,

© 著作权归作者所有

共有 人打赏支持
v
粉丝 0
博文 1
码字总数 168
作品 0
杭州
深入JavaScript基础之深浅拷贝

最近在学到JavaScript对象的深拷贝和浅拷贝做了一些比较,将实际开发的点和基础点做了些小结,话不多说,开始进入主题吧。 基础认识---基本类型 基础认识---引用类型 浅拷贝的实现-对象&&数组...

楚梦浮生
07/30
0
0
Javascript: Array.prototype.push()的源码及一些思考

JS的函数有一个特别重要的属性:,它经常被用到,比如说,我们来实现一个方法,可以这么写: 然后我们有时候要对进行处理,但是只是一个类数组,只有属性,没有什么, ……这时候我们经常会用...

Lxylona
05/15
0
0
为什么 react要使用immutable.js

原文来自:https://zhuanlan.zhihu.com/p/29983598 首先有一个非常巨大的对象… 这里有100,000条待办事项: 我要把第50,005条任务的completed改为ture。 用普通的JavaScript对象 这项操作运行...

神秘者007
08/05
0
0
Object.assign()

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign 说明 Object.assign()方法将所有可枚举属性的值从一个或多个源对象复制到目标对象,然后返...

莫问今朝乄
2017/12/03
0
0
从JS对象开始,谈一谈“不可变数据”和函数式编程

文章转载自:https://segmentfault.com/a/1190000008780076 作为前端开发者,你会感受到JS中对象(Object)这个概念的强大。我们说“JS中一切皆对象”。最核心的特性,例如从String,到数组,再...

朱先忠老师
05/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0
SpringBoot2.0 停机

最近新建了个SpringBoot2.0的项目,因为原来一直使用的是传统的Tomcat部署war包的形式,所以这次SpringBoot内置Tomcat部署jar包的时候遇到了很多问题。其中一个就是因为没有外置的Tomcat容器...

Canaan_
昨天
0
1
Confluence 6 外部参考

一个外部参考的意思是任何站点链接到你 Confluence 的实例。任何时候当 Confluence 的用户单击这个外部链接的时候,Confluence 可以记录这次单击为参考。 在默认的情况下,外部链接的参考链接...

honeymose
昨天
0
0
Android中的设计模式之抽象工厂模式

参考 《设计模式解析》 第十一章 Abstract Factory模式 《设计模式:可复用面向对象软件的基础 》3.1 Abstract Factory 抽象工厂 对象创建型模式 《Android源码设计模式解析与实战》第6章 创...

newtrek
昨天
0
0
Redis | 地理空间(GEO)的一个坑

Redis的地理空间(Geo)是个好东西,轻轻松松的就可以把地图描点的问题处理了, 最近却遇到一个坑...Redis采用的Msater-Slave模式, 运用GEORADIUS在salve读取对应的数据,新增了从节点但是从不返...

云迹
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部