js 的push方法的伪代码

<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

​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值