类数组对象与arguments

简介: 类数组对象与arguments

什么是类数组对象

拥有索引属性和 length 属性的对象

var array = ["name", "age", "sex"];

var arrayLike = {
  0: "name",
  1: "age",
  2: "sex",
  length: 3,
};

类数组对象使用数组方法

var arrayLike = { 0: "name", 1: "age", 2: "sex", length: 3 };

Array.prototype.join.call(arrayLike, "&"); // name&age&sex

Array.prototype.slice.call(arrayLike, 0); // ["name", "age", "sex"]
// slice可以做到类数组转数组

Array.prototype.map.call(arrayLike, function (item) {
  return item.toUpperCase();
});

Arguments 对象

Arguments 对象的 length 属性,表示实参的长度,举个例子:

function foo(b, c, d) {
  console.log("实参的长度为:" + arguments.length);
}

console.log("形参的长度为:" + foo.length);

foo(1);

// 形参的长度为:3
// 实参的长度为:1

callee 属性

Arguments 对象的 callee 属性,通过它可以调用函数自身。

讲个闭包经典面试题使用 callee 的解决方法:

var data = [];

for (var i = 0; i < 3; i++) {
  (data[i] = function () {
    console.log(arguments.callee.i);
  }).i = i;
}

data[0]();
data[1]();
data[2]();

// 0
// 1
// 2
目录
相关文章
|
10月前
|
编译器 C++ 开发者
C++构造函数在数组中的使用
C++构造函数在数组中的使用
70 0
|
6天前
|
存储 JavaScript 前端开发
对象的属性方法和深浅拷贝
总结,理解对象的属性和方法对于编程是基础而重要的,而掌握深浅拷贝的差异和使用场合则是编程的高级技能,它能帮助你有效地管理数据的完整性和独立性。
4 0
|
3月前
|
JavaScript 前端开发 索引
在JavaScript中,可以使用数组字面量或Array构造函数来创建一个数组对象
【4月更文挑战第16天】在JavaScript中,可以使用数组字面量或Array构造函数来创建一个数组对象
40 4
|
3月前
|
JavaScript 前端开发 索引
往数组添加对象的方法
往数组添加对象的方法
24 0
|
9月前
|
存储 索引
数组和对象有什么区别?
数组和对象有什么区别?
56 0
|
9月前
lamada List对象属性值转数组array
lamada List对象属性值转数组array
|
9月前
|
存储 JavaScript 前端开发
什么是数组,什么是对象,他们的区别是什么
什么是数组,什么是对象,他们的区别是什么
44 0
|
JavaScript 前端开发
Array.prototype.includes() 原型调用用法案例讲解
Array.prototype.includes() 原型调用用法案例讲解
105 2
|
JavaScript 算法
【干货】Array对象的方法大全,看看你知道多少.
从《高级程序设计》中整理出来的数组的概念和数组对象的一些方法,分享给大家同时也是复习复习,有不正确的地方欢迎指正,共同进步。
171 0