当前位置:网站首页>引用变量赋值
引用变量赋值
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 ]
边栏推荐
猜你喜欢
Flask framework learning: trailing slashes for routes
(2) Docker installs Redis in practice (persistent AOF and RDB snapshots)
Summary: Cross Validation
吃瓜教程task01 第1章 绪论
(3) How Redis performs stress testing
uniapp获取用户信息(登录及个人中心页面的实现)
【备忘】从零开始搭建Yolo5训练环境
(1) Docker installs Redis in practice (one master, two slaves, three sentinels)
task06 PyTorch生态
05-Nodejs中的模块加载机制
随机推荐
【记录】没用知识点 - 智力题
C语言——程序的编译与执行、宏定义详解
内存泄露与内存溢出
开炮,开炮
PHP提高并发能力有哪些方案
(2) Construction of a real-time performance monitoring platform (Grafana+Prometheus+Jmeter)
如何设置pip安装的国内源
【win10+cuda7.5+cudnn6.0安装caffe③】编译及测试caffe
08-Express路由详解
[Verilog] I2S Master Test Bench
第8章 函数探幽 -1
06-JS定时器:间隔定时器、延时定时器
pytorch中tensor 生成的函数
Flask framework to study: the debug and configuration items
task06 PyTorch生态
(1) Docker installs Redis in practice (one master, two slaves, three sentinels)
【备忘】于仕琪的libfacedetection相关
第4章 复合类型-1
task03 Pytorch模型定义
【转载】如何理解数据集中【训练集】、【验证集】和【测试集】