【js干货笔记】谈谈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 P45_CR0]}H)PMC{XWD3NN@4.png](https://blog.cmyo.cn/zb_users/upload/2023/04/202304271307318375549.png)
了解了这个原理后,那么我们在写业务代码的时候,就可以直接来更新对象的数据了,当然也能解决一下vue中可能遇到的v-for循环数据绑定重复问题,探究到此结束,我是沉梦,一个草根phper,感谢你的阅读
-- 展开阅读全文 --
