# JS 中常见的双生子

# splice & slice

Array.prototype.splice();
Array.prototype.slice();

splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。 此方法会改变原数组。

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括 end)。原始数组不会被改变。

array.slice([begin[, end]])

注意

如果数组元素是个对象引用,slice 会拷贝这个对象引用到新的数组里。两个对象引用都引用了同一个对象。如果被引用的对象发生改变,则新的数组和原来的数组中的这个元素也会发生改变。

# assign && create

Object.prototype.assign();
Object.prototype.create();