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