孔楼笑笑生 2016-09-13 12:10 采纳率: 33.3%
浏览 1345
已采纳

js数组 slice 方法如调用

 var divs = document.querySelectorAll('div');

用这个divs 不能用 slice()方法

但是

 var array =[];
var divs = document.querySelectorAll('div');
divs.forEach(function(div){
        array.push(div)
})

array 就有slice()方法

或者

 var divs = document.querySelectorAll('div');
[].slice.call(divs);

就可以使用slice方法,为什么 第一种不能用slice方法呢

  • 写回答

2条回答 默认 最新

  • little_how 2016-09-13 14:06
    关注

    可以用constructor来判断,因为slice是数组的方法,
    你的divs是一个集合,不是数组,所以不能调用数组的方法。
    call和apply是可以改变调用者对象的,就是方法不变而this改变,所以slice可以call,divs
    因为集合也支持下标读取,所以可以调用。

    希望能够帮到你...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧