arguments 类数组
一、类数组:长得像数组,可以拿它当数组用,但它不是数组
- 可以利用属性名模拟数组的特性
- 可以动态的增长
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 类数组相关推荐
- JS 函数中的 arguments 类数组对象
1. arguments 介绍 2. arguments 转为数组 3. 箭头函数中没有 arguments 1. arguments 介绍 众所周知,js 是一门非常灵活的语言.当我们在 js 中调 ...
- 将普通函数当中的arguments(类数组转换为数组以及类数组调用数组方法)
1.把类数组转换为数组 function fn() {/* console.log(arguments);// let arr = Array.from(arguments); 方法1let arr ...
- js 伪数组(类数组)与数组的区别
js 数组和类数组的区别 类数组定义 1)拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理): 2)不具有数组所具有的方法: javascript中常见的 ...
- 【JavaScript】类数组详解
[JavaScript]类数组详解 文章目录 [JavaScript]类数组详解 什么是类数组 类数组转换成数组 ES6 的方法转数组 callee属性 箭头函数没有arguments HTMLCol ...
- 【JavaScript】类数组对象
欢迎学习交流!!! 持续更新中- 文章目录 类数组对象 arguments 类数组对象 理解:是JS中一种特殊的对象.本质上来说对象是满足了一定条件的数组,类数组的使用目的在于使得一个对象既有数组的特 ...
- js 数组和类数组的区别
类数组定义 1)拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理): 2)不具有数组所具有的方法: javascript中常见的类数组有 argument ...
- 【译】JS基础算法脚本:类数组(arguments)去重
需求 给出一个类数组,删除要求的重复数据,返回新数组 destroyer([1, 2, 3, 1, 2, 3], 2, 3) should return [1, 1] destroyer([2, 3, ...
- js 类数组arguments详解
arguments并不是一个真正的数组,而是一个"类似数组(array-like)"的对象: 就像下面的这段输出,就是典型的类数组对象: [12, 23, callee: ƒ, S ...
- 深入理解JavaScript类数组
起因 写这篇博客的起因,是我在知乎上回答一个问题时,说自己在学前端时把<JavaScript高级程序设计>看了好几遍. 于是在评论区中,出现了如下的对话: 天啦噜,这话说的,宝宝感觉到的, ...
最新文章
- 计算机专业学位英语试题,(荐)2015年最新电大学位英语考试精篇复习资料 小抄版.doc...
- 使用母版页时内容页如何使用css和javascript
- DL:神经网络算法简介之Affine 层的简介、使用方法、代码实现之详细攻略
- JMP Discovery Summit数据分析峰会登陆中国
- 文件夹exe病毒查杀方法(图解)
- 阿里大数据神预测 胜率仅5.9%中国却1:0胜韩国
- 怎么编写java_程序员学编程第一步:手把手教你开发第一个Java程序
- 巴特沃斯滤波器 python_巴特沃斯、切比雪夫、贝塞尔滤波器的区别
- python编程输入三个数按大小输出_编程:输入3个数,按从小到大的顺序输出
- 太原市初中计算机课程视频,初中全课程教学视频
- 好玩的C语言大全,好玩的c语言程序!
- 《App 后台开发运维和架构实践》完整目录
- python之读取和写入文件
- html5如何添加图片菜鸟教程,菜鸟入门教程 HTML5的常见用法
- shader变体是什么_一种Shader变体收集和打包编译优化的思路
- 114-select(基础)
- 页面设计如何进行颜色搭配
- Bundle adjustment学习
- cstimothy17-字段,属性,索引器,常量
- 【愚公系列】2022年02月 U3D全栈班 005-Unity引擎视图
热门文章
- 合并两个链表数据结构c语言,合并两个链表.
- js手机号中间四位_11位手机号码隐藏中间四位数,学会Substitute函数一键搞定!...
- 能上网的Linux系统,那一款linux能上网
- android serviceconnection unbind流程,Android unbindService 流程分析
- 磊哥私藏书单分享,160买400的书!
- python爬虫lxml xpath测试
- python深拷贝,浅拷贝,赋值引用
- php 文件 后缀,php如何修改文件后缀名
- CAS实现原子操作的三大问题
- 有三个数a,b,c,要求按大小顺序输出。