例子:
let cols = document.querySelectorAll('ul li')
[].forEach.call(cols, function (col, index) {// TODO
}分析:
① []是一个空数组,无论这个数组里的最初值是什么,它们都不会被使用到;
② forEach方法是一个数组方法,只有数组才能调用;完整写法:Array.prototype.forEach,Array.forEach为简写;
③ call方法:
语法:fun.call(thisArg, arg1, arg2, ...)
参数:thisArg:在 fun 函数运行时指定的this值;arg1, arg2, ... : 指定的参数列表; 综上:
[]这个空数组里的值(当然,它没有值)是最初的this值,通过call方法,当这个空数组调用方法forEach时,cols里的值会取代空数组原先的this值。 通俗的说,就是cols需要使用forEach这个方法,但是这个方法是一个数组方法,只有数组才能调用,于是通过call方法来了个偷梁换柱,在数组调用forEach方法的时候,将数组里的this值替换成了cols的值,达成了目的。

转载于:https://www.cnblogs.com/Man-Dream-Necessary/p/8205711.html

理解[].forEach.call()相关推荐

  1. 【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题

    foreach语句使用总结 增强for(part1:part2){part3}; part2中是一个数组对象,或者是带有泛性的集合. part1定义了一个局部变量,这个局部变量的类型与part2中的对 ...

  2. foreach 二维java_教你如何用for和foreach循环遍历java中的二维数组

    一:先来说说for和foreach循环的区别 for和foreach的区别 foreach语句是java5的新特征之一,在遍历数组.集合方面,foreach为开发人员提供了极大的方便. foreach ...

  3. 换种思路去理解设计模式

    1 前言 看过许多关于设计模式的博客,也读过关于设计模式的书.几乎所有的介绍的开头,直接就引入了"设计模式"或者"某某模式".设计模式到底是因什么而来?这是一个 ...

  4. java中的foreach

    foreach 并不是java中的关键字,是for语句的特殊简化版,在比那里数组,集合时,foreach更加简单快捷,从字面上的意思理解 foreach 也就是 " for每一个 " ...

  5. java中的foreach用法及总结

    增强for(part1:part2){part3}; part2中是一个数组对象,或者是带有泛性的集合.  part1定义了一个局部变量,这个局部变量的类型与part2中的对象元素的类型是一致的.  ...

  6. foreach语句使用总结

    java foreach 使用 foreach语句是java5的新特征之一,在遍历数组.集合方面,foreach为开发人员提供了极大的方便.   foreach语句是for语句的特殊简化版本,但是fo ...

  7. 【黑马程序员】 【转载】foreach循环 ---------BY elleniou

    ----------------------android培训.java培训.期待与您交流!---------------------- foreach语句是java5的新特征之一,在遍历数组.集合方 ...

  8. java for数组遍历数组_Java foreach操作(遍历)数组

    语法: 我们分别使用 for 和 foreach 语句来遍历数组 运行结果: 练习: import java.util.Arrays; public class HelloWorld { public ...

  9. java 7 foreach_java foreach怎么用

    foreach语句是java5的新特征之一,在遍历数组.集合方面,foreach为开发人员提供了极大的方便. foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语 ...

  10. JAVA中的foreach循环

    一.概念 foreach语句是java5的新特征之一,在遍历数组.集合方面,foreach为开发人员提供了极大的方便. foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取 ...

最新文章

  1. Server-U的批量用户创建
  2. 解码python_Python解码
  3. 极客时间和极客学院_极客历史记录的本周:Twitter的诞生,OS X十周年以及太空停留时间最长的时代即将结束...
  4. 华丽的模态窗口弹出效果示例
  5. 面向对象与面向过程的理解——个人想法
  6. Python3之数据结构
  7. 学习Matlab的第一个程序——用二分法求根
  8. 移动公网5G配置(一)
  9. 无网情况下安装rpm依赖包
  10. 《微信小程序开发实战》学习笔记chapter1微信小程序人门
  11. 《通用数据保护条例》(GDPR)系列解读五:出海欧洲,企业必须做好四大义务
  12. 代码整洁之道精华——第十四章 逐步改进
  13. 最全openstack部署教程
  14. 号称21世纪的编辑器Atom
  15. 一个简单答题系统的设计与实现(二)
  16. SN74LVC8T245 8路 电平转换 3.3v 5v
  17. java写入excel模板_java实现赋值excel模板,并在新文件中写入数据,并且下载
  18. 手机页面底部浮动的按钮
  19. [Voice communications] 声道的转换
  20. Ubuntu 下 Janus Server 搭建笔记

热门文章

  1. Syncfusion的社区许可及免费电子书和白皮书
  2. sqlserver 游标写法
  3. android-support-v7-appcompat下载
  4. 用上了Godaddy的美国主机
  5. 取得系统当前日期和时间
  6. Solaris 10 X86安装备忘
  7. 在 Windows 容器中使用 gMSA
  8. Android UI 调试常用工具(Dump view UI hierarchy for Automator)
  9. redis之列表字典操作
  10. 用canvas画一个刮刮卡