<script type="text/javascript">
var obj0 = {0:"李四",1:165,length:2}
var obj1 = {height:20,age:10}
var arr = [1,2,3,4]
var arr1 = [9,11,22,33]
var arr0 = []
arr0.push.apply(obj0,[1,2,3])
arr0.push.apply(obj1,[1,2,3])
console.log(obj0)
console.log(obj1)
</script>
输出的是
{0: "李四", 1: 165, 2: 1, 3: 2, 4: 3, length: 5}
{0: 1, 1: 2, 2: 3, height: 20, age: 10, length: 3}
伪代码
<script type="text/javascript">
function push(){
var length = this.length
if(!this.length){
length = 0;
}
for(i=0;i<arguments.length;i++){
this[length+i] = arguments[i]
}
this.length = length + arguments.length
}
Array.prototype.push = push;
var arr = [2,3]
arr.push(1,2,3)
console.log(arr)
var obj = {age:20,name:22}
var arr = []
arr.push.call(obj,obj)
console.log(obj)
</script>
(5) [2, 3, 1, 2, 3]
0: 2
1: 3
2: 1
3: 2
4: 3
length: 5
[[Prototype]]: Array(0)
{0: {…}, age: 20, name: 22, length: 1}
0: {0: {…}, age: 20, name: 22, length: 1}
age: 20
length: 1
name: 22
[[Prototype]]: Object