码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中的Array.prototype.slice.call()方法学习

时间:2019-01-30 07:21:29      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:length   对象   方法   cal   注意   ring   luke   eof   意思   

JavaScript中的Array.prototype.slice.call(arguments)能将有length属性的对象转换为数组(特别注意: 这个对象一定要有length属性). 但有一个例外,IE下的节点集合它不能转换(因为IE下的dom对象是以com对象的形式实现,js对象和com对象不能进行转换)

首先,我们来看看JavaScript中的slice用法, 在JavaScript中Array是一个类,slice是此类中的一个方法,slice的中文意思是 ‘截取’

一个是String.slice  => 返回值是字符串

一个是Array.slice => 返回值是数组

Array.prototype.slice.call(arguments)能够将具有length属性的arguments转换为数组,  我们可以理解为就是 arguments.toArray().slice()

所以,这个过程我们是不是可以理解为 Array.prototype.slice.call(arguments)的实现过程就是把传入进来的具有length属性的第一个参数arguments转换为数组,再调用它的slice(截取)方法

这个Array.prototype.slice.call(arguments) 不单有slice方法,还有call方法。 那么call方法又是如何用的呢

我们来看一个用call方法的例子:

 

var a = function(){

      console.log(this);
      console.log(typeof this);
      console.log(this instanceof String);
    
}

a.call(‘littleLuke‘);
输出如下

// ‘littleLuke‘
//  Object
//  true

 

从上面的代码片段中,我们可以看到

 

JavaScript中的Array.prototype.slice.call()方法学习

标签:length   对象   方法   cal   注意   ring   luke   eof   意思   

原文地址:https://www.cnblogs.com/wphl-27/p/10336591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!