您的位置:首页 > Web前端 > JavaScript

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

2018-03-18 14:25 295 查看
    引用类型数据,当多个变量引用同一个数据,改变一个变量的值,所有变量的引用都将改变,如果只想改变当前变量而不影响其他引用,需要将对象克隆来使用。
说一下我为什么用的的这个方法:在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;
     }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: