引用类型数据,当多个变量引用同一个数据,改变一个变量的值,所有变量的引用都将改变,如果只想改变当前变量而不影响其他引用,需要将对象克隆来使用。
说一下我为什么用的的这个方法:在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;
}