js的克隆方法(消除数据引用的一些影响)

    引用类型数据,当多个变量引用同一个数据,改变一个变量的值,所有变量的引用都将改变,如果只想改变当前变量而不影响其他引用,需要将对象克隆来使用。

说一下我为什么用的的这个方法:在reactjs中,数据改变页面会重新渲染,但是我将数组中某个引用的对象值改变,页面没有重新渲染,原因是数组存储的引用值未变,reactjs认为数据没有变化。

 //   数据的克隆(同时能够消除数据引用对代码流程带来的一些影响)

      clone ( obj ) {
       let o = null;


       if ( typeof obj == 'object' ) {
         if ( obj === null ) {
           o = null;
         } else if ( obj instanceof Array ) {
           o = [];
           for ( let i = 0, len = obj.length; i < len; i++ ) {
             o.push( this.clone( obj[ i ] ) );
           }
         } else {
           o = {};
           for ( const j in obj ) {
             o[ j ] = this.clone( obj[ j ] );
           }
         }
       } else {
         o = obj;
       }
       return o;
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值