美文网首页
javascript中的Array.prototype.slic

javascript中的Array.prototype.slic

作者: Hathaway_桉 | 来源:发表于2017-05-08 15:42 被阅读0次

Array.prototype. slice.call(arguments)能够将具有length属性的对象转化为数组,

var a={length:2,0:'first',1:'second'};
 Array.prototype.slice.call(a);//  ["first", "second"]

先看call的用法:

var a = function(){
console.log(this);    // 'littledu'
console.log(typeof this);      //  Object
console.log(this instanceof String);    // true
}
a.call('littledu');

call的用法就是把a对象的作用域作用到传入的参数中去(也可以说传入参数在a对象的环境中执行)。
再来看slice方法的原理:

Array.prototype.slice = function(start,end){
var result = new Array();
start = start || 0;
end = end || this.length; //this指向调用的对象,当用了call后,能够改变this的指向,也就是指向传进来的对象,这是关键
for(var i = start; i < end; i++){
   result.push(this[i]);
      return result;
   }

最后介绍下转成数组的通用方法:

var toArray = function(s){
  try{
    return Array.prototype.slice.call(s);
      } catch(e){
     var arr = [];
     for(var i = 0,len = s.length; i < len; i++){
     //arr.push(s[i]);
       arr[i] = s[i];  //据说这样比push快
      }
    return arr;
     }
     }

相关文章

  • javascript中的Array.prototype.slic

    Array.prototype. slice.call(arguments)能够将具有length属性的对象转化为...

  • 1body中添加js

    1 中的 JavaScript JavaScript 函数和事件上面例子中的 JavaScript 语句,会...

  • JS中的类型转换

    JavaScript 中的类型转换 JavaScript 基本数据类型 JavaScript 中的一共有 8 中内...

  • js中的this

    javascript中的this javascript中的this与java中的this有点不同。ECMAScri...

  • JavaScript中的字符串

    @(javascript)[js字符串][toc] JavaScript中的字符串 字符串是JavaScript中...

  • 06-JavaScript数组和函数

    JavaScript数组 JavaScript中的数组可以存储不同类型的数据 JavaScript中的数组是引用类...

  • Client's JavaScript

    什么是JavaScript? JavaScript的运行环境? 浏览器中JavaScript可以做什么? 浏览器中...

  • javascript中的this

    一般说到JS的this,都会想起在函数中变来变去的this。但是事情的发生都是有规则的约束,JS中的this也不例...

  • JavaScript中的this

    什么是this? 首先对this的下个定义:this是在执行上下文创建时确定的一个在执行过程中不可更改的变量。th...

  • JavaScript中的this

    JavaScript中的this很容易让人迷惑,但弄清楚后其实还是很好区分的。JavaScript中的this总是...

网友评论

      本文标题:javascript中的Array.prototype.slic

      本文链接:https://www.haomeiwen.com/subject/yggmtxtx.html