单独的简单介绍,后续再补上一些资料.  

对象转换为数组.

 /**
* slice : 数组->slice(截取)
* 参数有两个,开始截取和结束截取,并返回原数组:
* a.slice(1) || a.slice(1,3) => a.slice(start) || a.slice(start,[end])
*
*/
var a = [1, 5, 7, 8, 9];
var b = a.slice(1, 3);
// console.log(b); /**
* call:对象->call()
* 源于:MDN示例 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call
* 语法:function.call(thisArg, arg1, arg2, ...)
* 参数:
* thisArg 可选的。注意,this可能不是方法看到的实际值:如果方法是非严格模式下的函数,null并且undefined将被全局对象替换,则原始值将被转换为对象。
* arg1, arg2, ...可选的。函数的参数。
* 描述:
* 该call()允许函数/方法属于被分配并要求一个不同的对象一个对象。
* call() 为 函数/方法提供了这个新值。使用 call,您可以编写一次方法,然后在另一个对象中继承它,而不必重写新对象的方法。
*/
function product(name, price) {
this.name = name;
this.price = price;
} function food(name, price) {
product.call(this, name, price);
} console.log(new food('cheese', 6).name, 'food函数,成功调用起product的函数'); // function disInfo() {
// console.log('恭喜你成功调用起call!~');
// }
// console.log(disInfo.call()) function toArray() {
return [].slice.call(arguments);
// return [].slice.call(arguments,0);
// return Array.prototype.slice.call(arguments);
}
console.log(toArray(1, 3, 5, 6, 7)); /**
* Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组
*/ var obj = {
length: 3,
0: 'a',
1: 'b',
2: 'c'
} var obj_1 = {
0: 'a',
1: 'b',
2: 'c'
} console.log(obj.length)

ES6写法:

 //  ES6新出的方法,必须要求提供其长度,才能正确换为数组
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
console.log(Array.from(arrayLike));

Array.prototype.slice.call 和 slice以及call的更多相关文章

  1. 【javascript 技巧】Array.prototype.slice的妙用

    Array.prototype.slice的妙用 开门见山,关于Array 的slice的用法可以参考这里 http://www.w3school.com.cn/js/jsref_slice_arra ...

  2. Array.prototype.slice.call(arguments)

    Array.prototype.slice.call(arguments)能够将具有length属性的对象转化为数组, 可以理解为将arguments转化成一个数组对象,让它具有slice方法 如: ...

  3. IE下Array.prototype.slice.call(params,0)

    i8 不支持 Array.prototype.slice.call(params,0) params可以是 HTMLCollection.类数组.string字符串

  4. (转)Array.prototype.slice.call自解

    很多框架或者库里面都会有这句的使用,最多的还是通过Array.prototype.slice.call(arguments,0)把arguments这个伪数组转换为真正的数组.但为什么可以这么做,却一 ...

  5. 详解 Array.prototype.slice.call(arguments)

    首先,slice有两个用法,一个是String.slice,一个是Array.slice,第一个返回的是字符串,第二个返回的是数组 在这里我们看第二个方法 1.在JS里Array是一个类 slice是 ...

  6. Array.prototype.slice && Array.prototype.splice 用法阐述

    目的 对于这两个数组操作接口,由于不理解, 往往被误用, 或者不知道如何使用.本文尝试给出容易理解的阐述. 数组 什么是数组? 数组是一个基本的数据结构, 是一个在内存中依照线性方式组织元素的方式, ...

  7. Array.prototype.slice.call(document.querySelectorAll('a'), 0)

    Array.prototype.slice.call(document.querySelectorAll('a'), 0)的作用就是将一个DOM NodeList 转换成一个数组. slice()方法 ...

  8. Array.prototype.slice.call

    Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组 ,::'age'}; Array.prototype.slice.call(arr); ...

  9. Array.prototype.slice.call(arguments) 类数组转成真正的数组

    Array.prototype.slice.call(arguments)   我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数 ...

  10. JavaScript 兼容 Array.prototype.slice.call

    IE9之前的IE版本的HTMLCollection以及NodeList不是Object的子类. 在通过Array.prototype.slice.call进行数组化的时候,IE9之前的IE版本会抛出异 ...

随机推荐

  1. pm2常用的命令

    exit //退出 ssh www@25.17.1.54 // 远程登录主机sudo su // 获得 root 权限 并且进入目录 /home/wwwpm2 list // 查看当前的列表 id 和 ...

  2. HDU2874【倍增、ST】

    题目链接[https://vjudge.net/problem/HDU-2874] 题意: 输入一个森林,总节点不超过N(N<10000),由C次询问(C<1000000),每次询问两个点 ...

  3. java 软引用,弱引用,强引用

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 强引用 ,有用的对象. 强引用 不会被回收. 软引用,有用 但不是必须的对象. 系统在发 ...

  4. [BZOJ1559][JSOI2009]密码(AC自动机)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1559 2009年的省选题虽然比起现在简单了不少,但对我来说还是很有挑战性的. 首先对于这种多串匹配问 ...

  5. python开发_linecache

    #从linecache的名称,我们可以知道该模块和cache(缓存)有关 #linecache现把文件读入到缓存中,在以后访问文件的时候,就不必要再从硬盘读取 #所以经常用于那些读取频率很高的文件还可 ...

  6. 去除两端margin的方法

    假如有一份视觉稿,其中一部分是实现这样的: 两排横向排列的框,它们中间有边距,两端无边距.每个框大小为100*100,外边距为20,整个区域为460*220. HTML结构: <div> ...

  7. 前后端常用通讯方式-- ajax 、websocket

    一.前后端常用通讯方式 1. ajax  浏览器发起请求,服务器返回数据,服务器不能主动返回数据,要实现实时数据交互只能是ajax轮询(让浏览器隔个几秒就发送一次请求,然后更新客户端显示.这种方式实际 ...

  8. 在Mac系统上安装Tomcat

    到 apache官方主页 下载 Mac 版本的完整 .gz文件包.解压拷贝到 /Library目录下.   1.Mac中 Finder打开 Library的方法 新建 Finder窗口   按下 sh ...

  9. 《UNIX环境高级编程》笔记--errno是否是线程安全的?

    当UNIX函数出错时,常常返回一个负数,而且整形变量errno通常被设置为含有附加信息的一个值,例如,open函数如成功,返回 一个非负文件描述符,如果出错就返回-1,在open出错时,有大约15种不 ...

  10. springBoot 2.X-自定义拦截器

    package com.cx.springboot.myInter; import javax.servlet.http.HttpServletRequest; import javax.servle ...