let arr1 = [1,2,3]
let arr2 = [4,5,6]
// arr1.push(arr2)
// console.log(arr1)
Array.prototype.push.apply(arr1,arr2)
console.log(arr1)
在上述代码中,为了实现数组push的值为数组这种情况,采用的是Array.prototype.push.apply(arr1,arr2) 这样的方式。
我在控制台打印了下下面两个方法,发现输出的方法都是一样的
既然arr1.push和Array.prototype.push的方法是一样的,为什么要借用Array.prototype.push这个方法呢?还有为什么Array.prototype.push这种方法可以实现数组push数组的功能,而arr本身的push方法却不能实现呢?
因为 apply 方法接收一个数组作为参数
fn.apply(obj, [1,2,3])
等同于obj.fn(1,2,3)
实际上,这种写法更多的见于祖传代码
现代js有可读性更好的写法