Array.from()用于将如下两类对象转化为真正的数组:javascript
它接受三个参数:java
它返回的是将该对象转化成功后,获得的数组。es6
let likeArrObj = { '0': 0, '1': 1, '2': 2, length: 3, } // ES5 的写法 (两种) var arr_es5_01 = Array.prototype.slice.call( likeArrObj ) var arr_es5_02 = [].prototypr.slice.call( likeArrObj ) // ES6 的写法 (两种) let arr_es6_01 = Array.from( likeArrObj ) let arr_es6_02 = [...likeArrObj]
浅复制 是说只拷贝数组元素的内容,而无论该内容是否是指向另外一个值。数组
- 通俗点讲,就是只拷贝一层数据。
深复制 与浅复制对应,它会不只拷贝数组元素的内容,还会分析其内容是否为一个“ 指针 ”类型的值,如对象,函数,数组等。- 若是是一个“ 指针 ”类型的值,则会继续将其值下的全部内容通通复制一份.
- 内容中的内容全要复制,直到其内容为 undefined 、 null 、 Boolean 、 Number 、 String 、 Symbol 的一种。
thisObj 是须要绑定的对象
arg1, arg2, ..., argn 是该函数调用的参数
Function.prototype.apply( thisObj, argArr ) 与该方法功能一致,只是在参数传递上,使用的是一个数组形式app
它的常见应用场景:函数
转化为真正的数组以后,就可使用 Array.prototype.forEach() 方法来操做该对象了。this