Array.prototype.slice.call(arguments)
1 var a={length:2,0:'first',1:'second'}; 2 Array.prototype.slice.call(a);// ["first", "second"] 3 4 var a={length:2}; 5 Array.prototype.slice.call(a);// [undefined, undefined]
首先,slice有两个用法,一个是String.slice,一个是Array.slice,第一个返回的是字符串,第二个返回的是数组,这里我们看第2个。
1 var a = function(){ 2 console.log(this); // 'littledu' 3 console.log(typeof this); // Object 4 console.log(this instanceof String); // true 5 } 6 a.call('littledu');
1 Array.prototype.slice = function(start,end){ 2 var result = new Array(); 3 start = start || 0; 4 end = end || this.length; //this指向调用的对象,当用了call后,能够改变this的指向,也就是指向传进来的对象,这是关键 5 for(var i = start; i < end; i++){ 6 result.push(this[i]); 7 } 8 return result; 9 }
大概就是这样吧,理解就行,不深究。
Array.prototype.slice.call(arguments)相关推荐
- [转载]Array.prototype.slice.call(arguments,1)原理
Array.prototype.slice.call(arguments,1)该语句涉及两个知识点. arguments是一个关键字,代表当前参数,在javascript中虽然arguments表面上 ...
- js Array.prototype.slice.call(arguments,0) 理解
Array.prototype.slice.call(arguments,0) 经常会看到这段代码用来处理函数的参数 网上很多复制粘帖说:Array.prototype.slice.call(argu ...
- Array.prototype.slice.apply(arguments)和[].slice.apply(arguments)解析
我们知道,函数内部 arguments 是一个类数组对象,不是真正的数组,因此也无法使用数组的各种方法.想详细了解 argument 对象可以前往函数中的 arguments. (function f ...
- 详解 Array.prototype.slice.call(arguments)
首先,slice有两个用法,一个是String.slice,一个是Array.slice,第一个返回的是字符串,第二个返回的是数组 在这里我们看第二个方法 1.在JS里Array是一个类 slice是 ...
- [转] 理解 JavaScript 中的 Array.prototype.slice.apply(arguments)
假如你是一个 JavaScript 开发者,你可能见到过 Array.prototype.slice.apply(arguments) 这样的用法,然后你会问,这么写是什么意思呢? 这个语法其实不难理 ...
- Array.prototype.slice.call(arguments,0); 上下调用模型
var fn9 = (function () {var arr = {}; //缓存对象var counter = function (arr) { //计算函数//args也就是fn9(1, 2, ...
- Array.prototype.slice.call(arguments)对象转成数组
转成数组的通用函数 1 var toArray = function(s){ 2 try{ 3 return Array.prototype.slice.call(s); 4 } catch(e){ ...
- Array.prototype.slice.call
Array.prototype.slice.call(arguments,0)就类似于arguments.slice(0),但因为arguments不是真正的Array,所以它没有slice这个方法. ...
- slice,Array.prototype.slice,Array.protyotype.slice.call
slice 特点:基于当前数组中的一或多个项创建一个新数组.[原数组不会被修改] 返回结果:返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象. 语法: arr.slice() ...
最新文章
- 基因组行业重大事件介绍
- Java基础巩固之线程学习
- 成功解决read_data_sets (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and wil
- centos7.0利用yum快速安装mysql8.0
- python数据可视化工具 pandas_Pandas数据可视化工具——Seaborn用法整理(下)
- js字符串、数组和数字常用方法总结
- linux windows变色龙,体验开源变色龙SUSE Linux Enterprise Server 11
- 摩托车午夜飙车撞进公交车下 肇事车主当场死亡
- python编程设计_程序设计入门—Python
- ie6,ie7兼容性总结(转)
- bzoj 1951 [Sdoi2010]古代猪文 ——数学综合
- nokia n9 android 4.4,NOKIA N9获APK兼容层 可安装Android应用
- MYSQL误删数据恢复
- minecraft java文件夹_Minecraft游戏下载 文件结构说明
- 什么是软件架构?常用的软件架构
- 数据库数据误删除恢复
- 机械硬盘与固态硬盘的区别
- 腾讯云、阿里云都“服”了,云容灾你还迟疑什么?
- java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效,请重新登录
- 中考可以使用计算机吗,中考物理课可以带计算机吗
热门文章
- zookeeper集群部署(分布式)
- 单节点配置SecondaryNameNode
- FAILED: Error in metadata: MetaException(message:Got exception: java.net.ConnectException
- 【Transformer】ATS: Adaptive Token Sampling For Efficient Vision Transformers
- 深度学习与计算机视觉(四)反向传播及其直观理解
- 如何在代码中将menu隐藏_如何在40行代码中将机器学习用于光学/光子学应用
- 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)
- 《北京作家》2010年第2期,总第4期出版
- 流水线技术在高速数字电路设计中的应用
- python frame如何置顶_Python tkinter frame父窗口小部件排列列