一、类数组:长得像数组,可以拿它当数组用,但它不是数组

  • 可以利用属性名模拟数组的特性
  • 可以动态的增长 length 的属性
  • 如果强行让类数组调用 push 方法,则会根据 length 属性值的位置进行属性的扩充

二、不能往类数组里面添加东西

function test() {console.log(arguments);arguments.push('age'); // arguments.push is not a function
}test(1, 2, 3);

三、类数组的组成

  • 属性要为索引(数字)
  • 必须有 length 属性
  • 最好加上push

类数组的好处就是把对象和数组的方法,全拼在一起

var obj = {'0': 'a','1': 'b','2': 'c','length': 3,'push': Array.prototype.push,'splice': Array.prototype.splice
};Array.prototype.push = function(target) {obj[obj.length] = target;obj.length++;
}obj.push('d');
console.log(obj);

四、 arguments.callee 指向函数自身的引用

function test() {console.log(arguments.callee); // function test() {...}function demo() {console.log(arguments.callee); // function demo() {...}}demo();
}
test();

递归求阶乘

var num = (function (n) {if (n === 1) {return 1;}return n * arguments.callee(n - 1);
} (5))

五、arguments.callee.caller 指向这个函数的调用者


arguments 类数组相关推荐

  1. JS 函数中的 arguments 类数组对象

    1. arguments 介绍 2. arguments 转为数组 3. 箭头函数中没有 arguments 1. arguments 介绍 众所周知,js 是一门非常灵活的语言.当我们在 js 中调 ...

  2. 将普通函数当中的arguments(类数组转换为数组以及类数组调用数组方法)

    1.把类数组转换为数组 function fn() {/* console.log(arguments);// let arr = Array.from(arguments); 方法1let arr ...

  3. js 伪数组(类数组)与数组的区别

    js 数组和类数组的区别 类数组定义 1)拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理):       2)不具有数组所具有的方法: javascript中常见的 ...

  4. 【JavaScript】类数组详解

    [JavaScript]类数组详解 文章目录 [JavaScript]类数组详解 什么是类数组 类数组转换成数组 ES6 的方法转数组 callee属性 箭头函数没有arguments HTMLCol ...

  5. 【JavaScript】类数组对象

    欢迎学习交流!!! 持续更新中- 文章目录 类数组对象 arguments 类数组对象 理解:是JS中一种特殊的对象.本质上来说对象是满足了一定条件的数组,类数组的使用目的在于使得一个对象既有数组的特 ...

  6. js 数组和类数组的区别

    类数组定义 1)拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理):       2)不具有数组所具有的方法: javascript中常见的类数组有 argument ...

  7. 【译】JS基础算法脚本:类数组(arguments)去重

    需求 给出一个类数组,删除要求的重复数据,返回新数组 destroyer([1, 2, 3, 1, 2, 3], 2, 3) should return [1, 1] destroyer([2, 3, ...

  8. js 类数组arguments详解

    arguments并不是一个真正的数组,而是一个"类似数组(array-like)"的对象: 就像下面的这段输出,就是典型的类数组对象: [12, 23, callee: ƒ, S ...

  9. 深入理解JavaScript类数组

    起因 写这篇博客的起因,是我在知乎上回答一个问题时,说自己在学前端时把<JavaScript高级程序设计>看了好几遍. 于是在评论区中,出现了如下的对话: 天啦噜,这话说的,宝宝感觉到的, ...

最新文章

  1. 计算机专业学位英语试题,(荐)2015年最新电大学位英语考试精篇复习资料 小抄版.doc...
  2. 使用母版页时内容页如何使用css和javascript
  3. DL:神经网络算法简介之Affine 层的简介、使用方法、代码实现之详细攻略
  4. JMP Discovery Summit数据分析峰会登陆中国
  5. 文件夹exe病毒查杀方法(图解)
  6. 阿里大数据神预测 胜率仅5.9%中国却1:0胜韩国
  7. 怎么编写java_程序员学编程第一步:手把手教你开发第一个Java程序
  8. 巴特沃斯滤波器 python_巴特沃斯、切比雪夫、贝塞尔滤波器的区别
  9. python编程输入三个数按大小输出_编程:输入3个数,按从小到大的顺序输出
  10. 太原市初中计算机课程视频,初中全课程教学视频
  11. 好玩的C语言大全,好玩的c语言程序!
  12. 《App 后台开发运维和架构实践》完整目录
  13. python之读取和写入文件
  14. html5如何添加图片菜鸟教程,菜鸟入门教程 HTML5的常见用法
  15. shader变体是什么_一种Shader变体收集和打包编译优化的思路
  16. 114-select(基础)
  17. 页面设计如何进行颜色搭配
  18. Bundle adjustment学习
  19. cstimothy17-字段,属性,索引器,常量
  20. 【愚公系列】2022年02月 U3D全栈班 005-Unity引擎视图

热门文章

  1. 合并两个链表数据结构c语言,合并两个链表.
  2. js手机号中间四位_11位手机号码隐藏中间四位数,学会Substitute函数一键搞定!...
  3. 能上网的Linux系统,那一款linux能上网
  4. android serviceconnection unbind流程,Android unbindService 流程分析
  5. 磊哥私藏书单分享,160买400的书!
  6. python爬虫lxml xpath测试
  7. python深拷贝,浅拷贝,赋值引用
  8. php 文件 后缀,php如何修改文件后缀名
  9. CAS实现原子操作的三大问题
  10. 有三个数a,b,c,要求按大小顺序输出。