JavaScript - 你见过 [].slice.call() 吗?
您是否遇到过[].slice.call(arguments)
或Array.prototype.slice.call(arguments)
在任何 JavaScript 代码中?
这个令人困惑的代码用于将具有.length
属性和数字索引的参数对象(就是所谓的类数组对象)转换为真正的数组,该数组调用两种方法:slice()
和call()
slice()
用法:
slice(beginIndex)
slice(beginIndex, endIndex)
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];console.log(animals.slice()); // [ 'ant', 'bison', 'camel', 'duck', 'elephant' ]
console.log(animals.slice(2)); // ["camel", "duck", "elephant"]
console.log(animals.slice(2, 3)); // [ 'camel' ]
call()
用法:
call()
call(thisArg)
call(thisArg, arg1)
call(thisArg, arg1, arg2)
call(thisArg, arg1, ... , argN)
function Product(name, price) {this.name = name;this.price = price;
}function Food(name, price) {Product.call(this, name, price);this.category = 'food';
}console.log(new Food('cheese', 5).name); // cheese
因此,如果我们将this
的值指定slice()
给一个类似数组的对象,
我们就可以使slice()
该方法在该对象上工作,并且如果我们在slice()
没有传递可选参数的情况下调用,它将把整个块作为一个新数组返回。
let listObj = {'0': 'zero','1': 'one','2': 'two',length: 3
};let arr = [].slice.call(listObj);
console.log(arr); // [ 'zero', 'one', 'two' ]
JavaScript - 你见过 [].slice.call() 吗?相关推荐
- JavaScript中String的slice(),substr(),substring()三者区别
JavaScript中String的slice(),substr(),substring()三者区别 共同之处 从给定的字符串中截取片段,并返回全新的这片段的字符串对象,且不会改动原字符串. 具体不同 ...
- JavaScript 所见所得文本编辑器 Froala Editor 4.0.17Crack
Froala Editor v4.0.17 清除格式工具现在可以从粘贴的内容中删除内联样式. 2023 年 1 月 24 日 - 9:07新版本 特征 清除格式工具现在可以从粘贴的内容中删除内联样式. ...
- 狂神Javascript笔记
学习狂神JavaScript所记录的笔记 Javascript笔记 一.前端核心分析 1.1.概述 Soc原则:关注点分离原则 Vue 的核心库只关注视图层,方便与第三方库或既有项目整合. HTML ...
- 前端学习 之 JavaScript基础
一. JavaScript简介 1. JavaScript的历史背景介绍 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.这是历史上第一个比较成熟的网络浏览器,轰动一时 ...
- 狂神说HTML5 + CSS + JavaScript 笔记(已完结)
HTML HTML:Hyper Text Markup Language(超文本标记语言) HTML 5 + CSS 3 W3C:World Wide Web Consortium(万维网联盟) W3 ...
- JavaScript数组方法大全解
0 前言 本文只讲解标准化方法,而不会讲解实验性方法,如at().groupBy().groupByMap()和toSource(). 数组中的部分方法需要提供区间范围begin/start和end, ...
- JavaScript学习(十)
目录 练习: String对象的方法 1.查找字符串 (1)charAt()方法 (2)indexOf()方法 (3)lastIndexOf()方法 2.截取字符串 (1)silce()方法 (2)s ...
- jQuery 遍历 - slice() 方法
实例 选中所有段落,然后将所选内容缩减为只包含第一和第二个段落: .slice(0, 2) 亲自试一试 定义和用法 slice() 把匹配元素集合缩减为指定的指数范围的子集. 语法 .slice(se ...
- 37个JavaScript基本面试问题和解答
1.使用typeof bar ==="object"来确定bar是否是一个对象时有什么潜在的缺陷?这个陷阱如何避免? 尽管typeof bar ==="object&qu ...
最新文章
- (转)C# 3.0 LINQ 的演变及其对 C# 设计的影响
- 多种分布式文件系统简介
- Linux软件包管理基本操作入门
- HADOOP2.5.0_64安装日志
- Linux安装软件包
- java任何表达式都可以当作语句_在Java语言中语句用分号终止,并不是所有的表达式都可以构成语句...
- ArcGis开发过程中遇到HRESULT:0x80040213错误
- ceres-solver学习笔记
- jQuery是什么,jQuery入门简介
- 小型ASP服务器|简洁asp服务器
- java map删除key_Java HashMap remove()方法
- FireMonkey 跨平台框架下的图片缩放和 JPEG 编码
- ARINC818(FC-AV)协议,ADVB
- mysql bcnf_bcnf范式
- 计算机时间无法保存更改,怎样更改电脑右下角时间设置 不能修改怎么办
- 易宝支付回调不成功问题解决
- 国外电子与通信教材系列最新目录单
- 大学生就业的三方协议基本概述
- mapreduce面试问题_MapReduce问题与解答第2部分
- HashMap和TreeMap