js函数参数传递

 js函数参数是 值传递 还是 引用传递  ?

结论:

js中 函数参数 传递方式 ,对于简单数据类型来说是值传递, 对于复杂数据类型来说是引用或者说指针传递地址传递

注意:

在学习c++的时候string根本不属于简单数据类型(结构体封装的内部使用chat类型),但javascript中却属于简单数据类型(编译器会处理将string,所以可以将string认为简单数据类型)

let temp = 23;
      let str = "sdf";
      let erweiArr = [
        [1, 435, 23],
        [1, 32, 23],
        [1, 435, 23],
      ];

      function testnumber(temp) {
        temp = 111;
      }
      function teststring(str) {
        str = "ewrwerw";
      }
      function testArry(erweiArr) {
        let arr = erweiArr[0];
        arr[1] = "ewrwerw";
      }
      testnumber(temp); //23
      testnumber(str);//sdf
      testArry(erweiArr);//[[1, "ewrwerw", 23],[1, 32, 23],[1, 435, 23]]

参数传递性能问题

最近在做项目优化,看项目的时候发现个问题,因为涉及到很多数据,处理数据时会将数据在各个函数间传递,有了个想法,将数据量很大的对象或数组作为函数参数来回传递会不会降低整个项目性能?

 查了很多资料发现确实会影响性能,尽管数据传递的是指针,尽量避免将大量数据来回传递。

解决方法:

1.尽量不要传整体对象或数组,可以先进行解析分割成小的局部变量  将每个函数所需的部分传递就好,参考威哥写的新pdf中解析函数

2.懒加载或者分页 一次性加载数据量减少

3.尽量避免深拷贝

下面是写的一个绘制pdf的一个类,在构造函数时会将json数据传递过来将数据进行切割,分成一段一段,后面

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值