ES5中的将伪数组转为数组中的Array.prototyp.slice.call(),的讲解

ES5中的将伪数组转为数组中的Array.prototyp.slice.call(),手写及讲解

Array.prototype.slice()

  • 返回值是一个新的数组
  • 参数1:切的起始位置,参数2:结束的位置(不包括)
let arr = [10,20,30,40,50,60];
console.log(arr.slice(2) === arr);//false

手写Array.prototype.slice()

Array.prototype.mySlice = function (index1,index2){
	if (!index1){
		index1 = 0
	}
	if (!index2){
		index2 = this.length
	}
	let i = index1;
	let arr = [];
	for (;i<index2;i++){
		arr.push(this[i]);
	}
	return arr
}

如果是这样的Array.prototype.mySlice.call(arguments)

Array.prototype.mySlice = function (index1,index2){
//this------------->arguments
	if (!index1){
		index1 = 0
	}
	if (!index2){
		index2 = this.length
	}
	let i = index1;
	let arr = [];
	for (;i<index2;i++){
		arr.push(this[i]); //this[i]---------->arguments[i]
	}
	return arr
}

所以在ES5中是用Array.prototype.slice来将伪数组转换为数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值