function not(q, w) { var qq = []; for (var q = 0; q < qq.length; q++) { qq.push(q[q]); } var ww = []; for (var w = 0; w < ww.length; w++) { ww.push(w[w]); } for (var j = 0; j < qq.length; j++) { for (var s = 0; s < ww.length; s++) { if (qq[j] == ww[s]) { qq.splice(j, 1); } } } return qq; }
当传入一个数组的时候,运行splice方法会影响到方法外的数组对象,浅复制(好像是?)了传入的数组还是会影响到外面的数组(自由变量) 深复制(好像是?)把传入的数组重新遍历以下,让其指针(好像是?)变为方法外是一个,方法里即复制后的数组是一个,就不会影响到外面的数组了