【js干货笔记】谈谈JavaScript里面的指针是什么有什么用

沉梦小哥哥
预计阅读时长 4 分钟
位置: 首页 JavaScript 正文

一.前言

关于JavaScript里的指针,似乎这个话题已经超出了初、中级前端程序员的理解范围,实际上所有真正的编程语言都是会接触到内存指针,指针的意思可以理解为数组中的索引(index)和对象中的属性名(key),只不过这个指针(或者叫索引)是给内存服务的,那么问题来了,指针又在js里面有什么作用,为什么要去了解它,下面开始谈谈我对js指针的看法和用途

二.正文

不知道有没有老哥遇到过类似的如下问题(看代码),我定义了一个变量obj,直接给它赋值为一个对象,包含属性a和b,然后再定义一个函数 ,调用这个函数后,你猜猜这时候发生了什么?

const obj ={
  a:"我是a",
  b:"我是b",
};
function test(objTemp){
  const aa = objTemp;
  	aa.b = '测试指针';
}
console.log('调用前',obj);
test(obj);
console.log('调用后',obj);


没错,分别打印调用前和调用后,b的值都是"测试指针",那么为什么会是这样呢?之所以会这样,也就是上面所说的指针才是元凶,这时候答案就呼之欲出了,经过如下的一句代码,此时指针就起了作用,你看似重新定义了一个变量,其实它指向的是变量obj,那么指针到底是什么呢?指针就是变量的内存地址,而js引擎为了节省开销,将变量aa的内存指针指向个变量obj,也就是同一个内存指针!!

const aa = objTemp;

P45_CR0]}H)PMC{XWD3NN@4.png


了解了这个原理后,那么我们在写业务代码的时候,就可以直接来更新对象的数据了,当然也能解决一下vue中可能遇到的v-for循环数据绑定重复问题,探究到此结束,我是沉梦,一个草根phper,感谢你的阅读

-- 展开阅读全文 --
头像
【layer】关于layer插件单独引用部分情况下layer.css加载不到缺失的解决办法
« 上一篇 2023-04-06
【搬站干货】宝塔面板站点太多如何快速免费迁移网站列表和数据库列表数据
下一篇 » 2023-05-29
取消
微信二维码
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]