当前位置:网站首页 > C++编程 > 正文

数组方法(数组方法slice)



slice() 方法可从已有的数组中返回选定的元素。原数组不改变返回新选定的元素组成的新数组。

数组.slice(start,end)
start: 可选 数组从什么位置开始选择,如果没设置默认值是0,从开始选择。
end :可选,数组截取到哪里,默认截取到数组的尾部

 
  
 
  

在这个案例中Array.prototype.slice.call(arguments)为什么会将伪数组转换为数组呢

这个问题牵扯一下两种概念

1、prototype 原型,所有的数组对象如果需要使用什么方法那就必须将这个方法增加在原型中,而且在必须在里面使用this,这个this就是这个数组对象

例如:

 
  

2、call 的作用,call在调用函数时可以替代函数中的this,例如:

 
  

那么现在我们解释一下Array.prototype.slice.call(arguments)。首先我们先模仿数组的原生API写一下slice,猜测哦,谁也不知道JS底层怎么写的。

 
  

上面这个就是模拟了slice的函数内容。那么在这里,this就是这个数组。如果我们使Array.prototype.slice1.call(arguments);那么就是把上面的这个方法中slice1函数中this用arguments替代了,类数组也是有下标的,因此,就相当于遍历取出每个下标存储在新的数组中,并且返回这个新数组。而这里call()后面没有带参,意味着直接调用了slice1,start和end都没有传入,当没有传参时默认从开始选择到尾部所有的元素放在新数组中,因此才可以转换为新数组。

到此这篇数组方法(数组方法slice)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • devc++反编译(dev c++反编译)2025-11-23 07:54:10
  • 如何配置dhcp自动获取ip上网(如何配置dhcp自动获取ip上网时间)2025-11-23 07:54:10
  • git clone 加上账号密码(git clone ssh 加上账号密码)2025-11-23 07:54:10
  • console是网线吗(console是什么接口)2025-11-23 07:54:10
  • icmp报文有什么作用(icmp报文详解)2025-11-23 07:54:10
  • 锁表头excel快捷键(excel2010锁定表头)2025-11-23 07:54:10
  • msvcp100.dll文件被占用(msvcp140.dll文件被占用)2025-11-23 07:54:10
  • cmake多级目录(cmake添加目录下所有的文件)2025-11-23 07:54:10
  • plc1ms定时器(plc定时器的)2025-11-23 07:54:10
  • xp虚拟机安卓版(xp虚拟机 -- bochs.apk)2025-11-23 07:54:10
  • 全屏图片