你可能不知道的javaScrept“规则”,引用

离了个大谱兄弟们

今天我在写音频可视化的时候发现一个让我非常震惊以及悲哀的事情,就是因为引用的问题让我出了很多我没法理解的bug

在这之前 我先说一下 这篇文章你可能看了可能觉得雀食我水平不怎么样,的确这些都是很基础的东西 但就是有人他真不知道;

var data = [1,2,3]
var data2 = data

以下的东西是在没有使用拷贝函数的情况下

打印的结果是这样的想必大家必定没有争议

假如我改变一下data的数据data[0]= 4

这个时候我们再去分别打印两个变量会发现得到的还是一样的

对于各位老鸟来说觉得这很正常吗 ,但是对于菜鸟来说

可能会觉得data的数据不是赋值给data2 了嘛为什么改了data的值data2变了????

var data = {name:"zhangshan"}
var _data = data
var data2 = [1,2,3]
var _data2 = data2
var data3 = ()=>{ console.log("??");}
var _data3 = data3

//var data = {name:"zhangshan"}
//var _data = {name:"zhangshan"}
//如果是这样的 那他们之间就是不相互影响的 改变data的数据不会影响_data的数据  凡是 {name:"zhangshan"} 、 [1,2,3] 、()=>{ console.log("??");} 都是名花无主的 赋值就只是引用

在以上的几种情况我们直接用data1、data2、data3这几个都是引用、也就是说这几个都不是 = 后面的那一坨的本身 就好比我有一个游戏账号 ,游戏账号里面有很多装备(假如可以多人同时登陆)给张3用了 张3他是个人 他不是游戏账号 他只能用 还能修改游戏里面的数据 比如说是买卖装备 ,现在我又把我的账号给李四用了,同样的李四也是个人他不是游戏账号本身吧 张三买卖了装备后李四上号就是张三买卖过后的数据同样李四买卖后张三也能看得到改变后的。他们都是不是游戏账号本身 他们只是用一下游戏账号也可以做修改

今天这篇写的比较草率 是因为我发现我连这几本的东西都还没有明白 感觉很气 大家还有什么觉得很基础但是大家不知道的可以在评论区说一说  ε=(´ο`*)))唉 又是菜鸟的一天

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梵颜夕不会发疯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值