[].slice

简介: 经常读某一些前端框架的源码时,看到一些公共的基础处理方案,遂简单思考了下。因为很多时候,细节很重要!var slice = [].slice, splice = [].splice, push = [].push, toString = Objec

经常读某一些前端框架的源码时,看到一些公共的基础处理方案,遂简单思考了下。因为很多时候,细节很重要!

var slice             = [].slice,
    splice            = [].splice,
    push              = [].push,
    toString          = Object.prototype.toString;

上面的代码为什么这么写咧?

  • [].slice 其实就是 Array.prototype.slice 的简写;
  • 方便之后进行 array.call(slice, index) 或 nodeList.call(slice, index);

    test.call(slice, index), 这里的test不一定是数组, 可能是其他的类型(类数组),比如下面的例子, 不防打开 console试试.

    var test = document.getElementsByTagName('div');
    [].slice.call(test, test.length -1 ); // [ <div> ... </div> ]
    test instanceof Array;  // false
    test instanceof HTMLCollection; // true
  • Object.prototype.toString 不能写成 {}.toString, 后者会报语法错, 因为 {} 是语句块,倒是可以写成 ({}).toString.

其他: 汤姆大叔博客(强大的原型和原型链)也写错过喔 {}.hasOwnProperty.call(foo, 'bar'); 应该是 ({}).hasOwnProperty.call(foo, 'bar'); , 仔细看!

目录
相关文章
|
6月前
Array.from() 与 Array.reduce()
Array.from() 与 Array.reduce()
43 1
|
3月前
|
JavaScript 前端开发 开发者
|
6月前
实现array.slice()方法
实现array.slice()方法
|
6月前
|
前端开发
如何区分slice,splice,split?
如何区分slice,splice,split?
68 0
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
Slice
语言切片(Slice)是一种自然语言处理技术,可以将文本分成多个部分,以便更好地理解和分析文本内容。语言切片通常用于文本分类、情感分析和机器翻译等任务。 使用语言切片,可以指定文本中的哪些部分被视为“重要”或“相关”,从而更好地理解和分析文本。例如,在文本分类任务中,可以将
53 1
|
前端开发
前端数组方法slice
前端数组方法slice
94 0
|
6月前
|
JavaScript 前端开发
slice()和splice()用法
slice()和splice()用法
66 0
|
存储 JavaScript 前端开发
分别利用split(),slice(),splice(),join(),操作数组的方法
分别利用split(),slice(),splice(),join(),操作数组的方法
|
JavaScript 索引
JS数组常用方法(超级详细,含理解) push、pop、unshift、shift、splice、slice、concat、join、revres、indexOf、sort、filter、map
JS数组常用方法(超级详细,含理解) push、pop、unshift、shift、splice、slice、concat、join、revres、indexOf、sort、filter、map
294 0