`

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

 
阅读更多

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

 

在很多的例子里面都会看到以上的调用,开始看了很久也不明白是什么意思,最近研究了一下,终于明白了。

 

要讨论这样的调用方式,其实只有一个目的,

 

arguments (typeof arguments它是一个object ),而在这里调用的是array的slice 方法.

 

 

array.prototype.slice 是原型slice 方法,

call()查看帮助文档会发现,会把call(thisObject)做为当前上下文使用,(也可以简单thisObject可以调用Array的方法。)

slice()返回一个数组的一段

分享到:
评论

相关推荐

    Array.prototype.slice.apply的使用方法

    `Array.prototype.slice.apply` 是 JavaScript 中一种巧妙的技巧,它允许我们借用 `Array.prototype.slice` 方法来处理非数组对象,尤其是 `arguments` 对象。`arguments` 是一个伪数组对象,它在每个函数内部可用,...

    arguments:永远不要写“Array.prototype.slice.call(arguments);” 以后再!

    永远不要写Array.prototype.slice.call(arguments); 以后再! 这是基于但使用Object.defineProperty(arguments.constructor.prototype, [functionName], {enumerable: false, configurable: true, value: [function...

    浅谈javascript的Array.prototype.slice.call

    在js中我们经常会看到Array.prototype.slice.call(arguments,0)的写法,当然,这个方法的作用也许大家都明白,那就是把类数组对象转换成一个真正的数组。关于这个方法,我说说自己的理解。 这里涉及到slice()方法和...

    javascript Array.prototype.slice的使用示例

    通过`Array.prototype.slice.call(arguments, 0)`,我们可以将`arguments`对象转化为真正的数组,从而可以使用数组的所有方法。 例如: ```javascript var slice = Array.prototype.slice; (function() { var ...

    array.prototype.silce.call 理解分析

    这里,`Array.prototype.slice.call` 被用来从 `arguments` 对象中提取一个子集,从索引 2(第三个参数)开始,直到结束。这将创建一个新的数组 `a`,包含参数 3 和 5,然后 `alert` 显示这个新数组。 这种技术在...

    Array.prototype.slice 使用扩展

    1. `slice.call({0: 'foo', length: 'bar'})[0]`:由于 `length` 属性无法转换为数字,`slice` 返回的数组将是空的,所以 `[0]` 会返回 `undefined`。 2. `slice.call(NaN).length`:`NaN` 不是一个类似数组对象,...

    javascript Array.prototype.slice使用说明

    1. `slice.call({0: 'foo', length: 'bar'})[0]`:由于 `length` 被赋予了一个字符串 `'bar'`,在尝试转换为无符号 32 位整数时,它会变成 `0`。因此,`slice` 会从索引 `0` 开始,但由于没有更多的索引,返回的数组...

    Array.prototype 的泛型应用分析

    var args = Array.prototype.slice.call(arguments); ``` 这行代码将 `arguments` 对象转换为真正的数组,以便可以使用数组特有的方法。 总的来说,了解并熟练运用 `Array.prototype` 的泛型应用可以提高代码的...

    JavaScript学习笔记之ES6数组方法_.docx

    在ES5中,我们通常使用`Array.prototype.slice.call()`来实现这个功能,但在ES6中,我们可以直接使用`Array.from()`。例如,一个拥有`length`属性的对象,如`arguments`对象,可以通过`Array.from()`轻松转换。此外...

    array.js:使ie8等浏览兼容array最新方法

    在IE8中,可以使用`Array.prototype.slice.call()`转换为可迭代对象,再配合for循环实现。 ```javascript if (!Array.prototype.map) { Array.prototype.map = function(callback, thisArg) { var T, A, k; if ...

    前端面试题之baseJS-arrayLikeToArr.zip

    - **Array.prototype.slice.call()**:这是最常用的转换方法,通过调用Array.prototype.slice方法并传入类数组对象作为上下文。例如: ```javascript var arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 3}; var...

    前端面试题之baseJS-isArray.zip

    var args = Array.prototype.slice.call(arguments); // ... } ``` 通过理解和熟练运用以上知识点,前端开发者可以在面试中展示自己扎实的JavaScript基础,特别是对数组操作的理解和应用能力。不断学习和实践,...

    Javascript中从学习bind到实现bind的过程

    `Array.prototype.slice.call(arguments, 1)`用于从`arguments`对象中获取从第二个参数开始的所有参数,并将它们转换成数组,这是因为`arguments`对象并不是一个真正的数组。 #### 4. 关于arguments对象与数组转换 ...

    前端面试进阶篇前端面试进阶篇

    var args = Array.prototype.slice.call(arguments, 1); return function F() { if (this instanceof F) { return new _this(...args, ...arguments); } return _this.apply(context, args.concat(......

    javascript中利用柯里化函数实现bind方法_.docx

    var outArgs = Array.prototype.slice.call(arguments, 1); if ('bind' in Function.prototype) { return this.bind.apply(this, [context].concat(outArgs)); } return function() { var inArgs = Array....

    深入探密Javascript数组方法

    在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法。数组是继承自Object的原型,... var nodesArr = Array.prototype.slice.call(document.forms);  var argsArr = Array.pro

    理解javascript中的Function.prototype.bind的方法

    var args = Array.prototype.slice.call(arguments, 1); return function() { return self.apply(context, args.concat(Array.prototype.slice.call(arguments))); }; }; } ``` 总结起来,`Function.prototype...

    前端面试题之arrayLike.zip

    2. Array.prototype.slice.call():使用数组原型上的slice方法,指定上下文为ArrayLike对象,如`Array.prototype.slice.call(arguments)`。 3. Array构造函数:利用Array构造函数也可以实现转换,如`new Array...

    js利用prototype调用Array的slice方法示例

    代码如下: [removed] function fn(name){ if(typeof name === “string”){ var args = Array.prototype.slice.call( arguments, 1 ); for(var i=0;i<args.length;i++){ alert(args[i]);//结果: 111 222 ...

Global site tag (gtag.js) - Google Analytics