文档章节

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

v
 vincedd
发布于 2017/05/02 13:35
字数 168
阅读 11
收藏 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中浅拷贝和深拷贝的区别和实现

要理解 JavaScript中浅拷贝和深拷贝的区别,首先要明白JavaScript的数据类型 JavaScript有两种数据类型,基础数据类型和引用数据类型 基础数据类型:保存在栈内存中的简单数据段 ,有undefin...

tianyawhl
09/25
0
0
JavaScript基础-基本数据类型和基本流程控制

JavaScript基础1 一、基本数据类型 1.Number 2.String 3.Null 4.Undefined 5.true or false 二、字符串常用方法 1.解析字符串数字 parseInt:解析成整数 parseFloat:解析成小数 2.文本常见操...

pei_river
09/06
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

没有更多内容

加载失败,请刷新页面

加载更多

rabbitmq学习(一)

RabbitMQ是目前非常热门的一款消息中间件,具有高可靠、易拓展、高可用及丰富的功能 1.什么是消息中间件 消息是指在应用间传送的数据。包含文本字符串、JSON、内嵌对象 消息队列中间件(消息...

hensemlee
15分钟前
1
0
学习设计模式——原型模式

1. 认识原型模式 1. 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 2. 结构: Prototype:声明一个克隆自身的接口,用来约束想要克隆自己的具体实现类,要求这些类...

江左煤郎
21分钟前
1
0
观察者模式

观察者模式的套路 有如下角色: 事件,比如修改,用户点击; 事件队列,触发事件之后,会把事件一个一个放入事件队列 监听器,采用某种方式(一般是轮询,或者io阻塞机制),来判断事件队列是否有新的未...

黄威
25分钟前
1
0
线程安全策略

四个线程安全策略 线程限制: 一个被线程限制的对象,由线程独占,并且只能被占有它的线程修改 共享只读: 一个共享只读的对象,在没有额外同步的情况下,可以被多个线程并发访问,但是任何线...

Ala6
31分钟前
2
0
Dubbo (三)源码分析 —— 架构原理

1 核心功能 首先要了解Dubbo提供的三大核心功能: Remoting:远程通讯 提供对多种NIO框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息交换方式。 Cluster: 服务框架 提供基于接口方...

小刀爱编程
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部