当前位置:网站首页>引用变量赋值
引用变量赋值
2022-08-11 05:17:00 【-加油】
1、修改数据
对象:
let obj1 = {
name:'1111'
}
let obj2 = obj1
console.log(obj1);//{ name: '1111' }
console.log(obj2);//{ name: '1111' }
//修改对象内部数据 会影响
obj2.age = 18
// //或者
// obj2['age'] = 18
console.log(obj1);//{ name: '1111', age: 18 }
console.log(obj2);//{ name: '1111', age: 18 }
数组:
let arr1 = ['盛明兰','小桃']
let arr2 = arr1
console.log(arr1);//[ '盛明兰', '小桃' ]
console.log(arr2);//[ '盛明兰', '小桃' ]
arr1[2] = '丹橘'
console.log(arr1);//[ '盛明兰', '小桃', '丹橘' ]
console.log(arr2);//[ '盛明兰', '小桃', '丹橘' ]
2、指向另一个对象
let obj1 = {
name:'1111'
}
let obj2 = obj1
console.log(obj1);//{ name: '1111' }
console.log(obj2);//{ name: '1111' }
//obj1 指向另一对象
obj1 = {
age:18
}
console.log(obj1);//{ age: 18 }
//obj2仍然指向之前的
console.log(obj2);//{ name: '1111' }
let arr1 = ['盛明兰','小桃']
let arr2 = arr1
console.log(arr1);//[ '盛明兰', '小桃' ]
console.log(arr2);//[ '盛明兰', '小桃' ]
//arr1 指向新的
arr1 = ['顾廷烨','石头']
console.log(arr1);//[ '顾廷烨', '石头' ]
//arr2 仍然是之前的
console.log(arr2);//[ '盛明兰', '小桃' ]
3、传参
对象:
let obj1 = {
name:'1111'
}
let obj2 = obj1
console.log(obj1);//{ name: '1111' }
console.log(obj2);//{ name: '1111' }
//将obj1 的地址 拷贝给obj
function fn(obj){
//修改对象内部数据 会影响
obj.name = '2222'
}
//传的实参是引用类型 传的是地址
fn(obj1)
console.log(obj1);//{ name: '2222' }
console.log(obj2);//{ name: '2222' }
数组:
let arr1 = ['盛明兰','小桃']
let arr2 = arr1
console.log(arr1);//[ '盛明兰', '小桃' ]
console.log(arr2);//[ '盛明兰', '小桃' ]
function fn(arr){
//修改内部数据 会影响
arr.push('丹橘')
}
fn(arr1)
console.log(arr1);//[ '盛明兰', '小桃', '丹橘' ]
console.log(arr2);//[ '盛明兰', '小桃', '丹橘' ]
指向新的对象:
对象:
let obj1 = {
name:'1111'
}
let obj2 = obj1
console.log(obj1);//{ name: '1111' }
console.log(obj2);//{ name: '1111' }
//将obj1 的地址 拷贝给obj
function fn(obj){
//这里的obj 指向另一对象了 与obj1无关 也不会修改到obj1
obj = {
name:'2222'
}
}
fn(obj1)
console.log(obj1);//{ name: '1111' }
console.log(obj2);//{ name: '1111' }
数组:
let arr1 = ['盛明兰','小桃']
let arr2 = arr1
console.log(arr1);//[ '盛明兰', '小桃' ]
console.log(arr2);//[ '盛明兰', '小桃' ]
//传的实参是引用类型 传的是地址
function fn(arr){
//指向新的引用类型
arr = ['顾廷烨','石头']
}
fn(arr1)
console.log(arr1);//[ '盛明兰', '小桃']
console.log(arr2);//[ '盛明兰', '小桃']
例子:
let x = [1,2]
//传的是地址
function fn(y){
y[0] = 100 //修改内部数据 同时修改了实参的数组x
y = [3] // 指向新的
y[1] = 4
console.log(y);// [ 3, 4 ]
}
console.log(x);//[ 1, 2 ]
fn(x)
console.log(x);//[ 100, 2 ]
边栏推荐
- 【记录】ES6
- 开炮,开炮
- C语言自定义数据类型——联合体
- 03-npm安装包详解,解决npm下载慢的问题,引入nrm等
- Flask framework to study: the debug and configuration items
- Introduction of several ways to initialize two-dimensional arrays in C language (private way to initialize large arrays)
- 07-JS事件:事件类型、事件对象、事件传播、事件委托
- 08-Express路由详解
- LeetCode43.字符串相乘 (大数相乘可用此方法)
- 07-nodemon安装和使用
猜你喜欢
Flask framework learning: template inheritance
(1) Docker installs Redis in practice (one master, two slaves, three sentinels)
task04 Pytorch进阶训练技巧
bootstarp作业一:制作分页器
2021研究生数学建模D题,BP神经网络和卷积神经网络解题代码(基于pytorch)
08-JS对象、原型及原型链
C语言结构体详解 (2) 结构体内存对齐,默认对齐数
C语言——文件操作函数 fseek、ftell、rewind详解
RK3399上的Tengine实践笔记
【转载】CMake 语法 - 详解 CMakeLists.txt
随机推荐
(1) Construction of a real-time performance monitoring platform (Grafana+Influxdb+Jmeter)
第4章 复合类型-2(指针)
【win10+cuda7.5+cudnn6.0安装caffe③】编译及测试caffe
生成用户的唯一标识(openId),并且加密
[Verilog] I2S Master Test Bench
第13章 类的继承-1
【备忘】于仕琪的libfacedetection相关
博客帮助文档
ClionIDE通过指定编译器编译
家·谱——人脸识别家谱系统
C语言结构体详解 (2) 结构体内存对齐,默认对齐数
05-Nodejs中的模块加载机制
Randomly generate uuid using rand function
labelme工具,对类别标注,再进行细致的分割
Chapter 4-2 a complex type (pointer)
C语言的二维数组初始化的几种方式介绍(私藏大数组初始化方式)
gradle-wrapper.jar description
Chapter 4 Composite Types-1
c 指针学习(1)
Qt 字符串截取 查找字符串