由[].slice.call()引发的思考
由[].slice.call()引发的思考
经常看到大家用[].slice.call()或者Array.prototype.slice.call(); 我一直是一知半解的,今天算是基本弄清楚了,在此记录一下。
可能最常见的是Array.prototype.slice.call(arguments) 就是截取(更重要的是获取,slice是得到子数组)函数的参数,然后让arguments等“伪数组”也可以使用数组的各种方法。
这种写法看上去很是牛逼,然而,一查才发现,ES6已经优雅的实现,毕竟功能更加的强大:他就是Array.from();
let p = document.querySelectorAll('p');
Array.from(p).forEach(function(i){
alert(i);
});
不单单可以转化arguments,元素集合,还可以转化类数组对象。
https://www.cnblogs.com/simao/p/7716711.html
由[].slice.call()引发的思考的更多相关文章
- Array.prototype.slice.call引发的思考
概述 今天在看书的时候看到Array.prototype.slice.call(arguments),有点看不懂,所以认真研究了一下,记录下来,供以后开发时参考,相信对其他人也有用. call 每一个 ...
- Spring之LoadTimeWeaver——一个需求引发的思考---转
原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引 ...
- 由SecureCRT引发的思考和学习
由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1& ...
- 解决一道leetcode算法题的曲折过程及引发的思考
写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> ...
- 【思考】由安装zabbix至排障php一系列引发的思考
[思考]由安装zabbix至排障php一系列引发的思考 linux的知识点林立众多,很有可能你在排查一个故障的时候就得用到另一门技术的知识: 由于linux本身的应用依赖的库和其它环境环环相扣,但又没 ...
- 由<a href = "#" > 引发的思考
原文:由<a href = "#" > 引发的思考 前阵子在一个移动项目中,通过 <a href = "#" > 的方式 绑定clic ...
- 曲演杂坛--一条DELETE引发的思考
原文:曲演杂坛--一条DELETE引发的思考 场景介绍: 我们有一张表,专门用来生成自增ID供业务使用,表结构如下: CREATE TABLE TB001 ( ID ,) PRIMARY KEY, D ...
- class_copyIvarList方法获取实例变量问题引发的思考
在runtime.h中,你可以通过其中的一个方法来获取实例变量,那就是class_copyIvarList方法,具体的实现如下: - (NSArray *)ivarArray:(Class)cls { ...
- js基础进阶--关于Array.prototype.slice.call(arguments) 的思考
欢迎访问我的个人博客:http://www.xiaolongwu.cn Array.prototype.slice.call(arguments)的作用为:强制转化arguments为数组格式,一般出 ...
随机推荐
- List的子类特点
List的子类特点: ArrayList: 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector: 底层数据结构是数组,查询快,增删慢 ...
- C#winform和百度API互动-----之JS读取中C#中的函数
例子1 线上JS var getcpylocation =window.external.getlocation(); map.centerAndZoom(getcpylocation,12); C# ...
- 10Flutter页面布局 Padding Row Column Expanded组件详解:
Padding组件: main.dart import 'package:flutter/material.dart'; import 'res/listData.dart'; /* flutter页 ...
- TreeView如何实现选中的节点上移或下移 [问题点数:20分,结帖人nww2002]
在TreeView中,如何实现选中一节点,右键点击上移或下移 TTreeNode.MoveTo() 一.获得Tree上的结点var NowNode : TTreeNode;begin NowNode ...
- 安装php扩展sphinx-1.2.0.tgz和libsphinxclient0.9.9
一.首先安装libsphinxclient(php模块需要) cd /usr/local/src/tar zxvf sphinx-0.9.9.tar.gzcd sphinx-0.9.9/api/lib ...
- sonar:sonarqube6.7.6与mysql5.7版本不匹配
问题 更换sonarqube的数据库为mysql后,启动sonarqube,提示Database was upgraded to a more recent of SonarQube. 解决: 将so ...
- Flutter 常用组件
无状态组件(StatelessWidget)是不可变的,这意味着它的属性不能改变,所有的值都是最终的. 有状态组件(StatefulWidget)持有的状态可能在Widget生命周期中发生变化.实现一 ...
- OpenGL学习(4)——纹理
拖了半个多月的博客,这次学习如何使用纹理(Texture)贴图来实现更多的细节. 生成纹理对象 和创建VAO.VBO方法类似,调用glGenTextures函数. glGenTextures(1, & ...
- leetcode mysql
给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值.交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然).要求只使用一个更新(Update)语句,并且没有 ...
- 【miscellaneous】使用Google语音识别引擎(Google Speech API)[3月5日修改]
原文:http://blog.csdn.net/dlangu0393/article/details/7214728#comments 近期重写本文,暂时禁止评论. 最近在使用Qt编写一个客户端程序的 ...