资讯专栏INFORMATION COLUMN

javaScript中的Arguments对象

OpenDigg / 2834人阅读

摘要:搞清楚什么是是一个对应于传递给函数的参数的类数组对象。对象是所有非箭头函数中都可用的局部变量。首先它是一个类数组对象,结果毫无疑问是,注意结果是字符串类型。接下来调用,结果是从未见过的。第一次写文章,希望对你们有点帮助。

1.搞清楚什么是arguments
“arguments 是一个对应于传递给函数的参数的类数组对象。
arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。”

首先它是一个类数组对象,typeof arguments结果毫无疑问是"object",注意结果是字符串类型。接下来调用Object.prototype.toString.call(arguments),结果是从未见过的"[object Arguments]"。

2.转换为数组

1.Array的silce方法

Array.prototype.slice.call(arguments)

2.Array.from

let re = Array.from(arguments)

3.拓展运算符

let re = [...arguments]
3.从arguments到类数组

类数组必须有length属性,具有索引属性,下面结合代码说明:

let obj = {

            "0": "a",

            "1": "b",

            "2": "c",

            length: 3,

            "push": Array.prototype.push,

            "splice": Array.prototype.splice

        }

obj.push("d")

console.log(obj) 

结果为:

实际执行过程相当于:

obj[obj.length] = "d";
obj.length++;
4.笔试题
var length = 10;
function fn(){
    console.log(this.length)
}
var obj = {
    length: 5,
    getF: function(fn) {
        fn();
        arguments[0]();
    }
}
obj.getF(fn);

考察的是arguments和this指向问题,我答的5 1,真实结果为10 1。第一次写文章,希望对你们有点帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102684.html

相关文章

  • JavaScript arguments 对象全面介绍

    摘要:事实上,满足一定条件的对象都能被方法转换成数组。继承于的很大原因是不需要这四个方法。而在非严格模式下,两个会互相影响。数组与类数组对象数组具有一个基本特征索引。这是一般对象所没有的。是利用对象的键值对存取数据,而却是利用数组的索引。 1. 什么是 arguments MDN 上解释: arguments 是一个类数组对象。代表传给一个function的参数列表。 我们先用一个例子直观了...

    HackerShell 评论0 收藏0
  • JavaScript arguments 对象详解

    摘要:事实上,满足一定条件的对象都能被方法转换成数组。继承于的很大原因是不需要这四个方法。而在非严格模式下,两个会互相影响。数组与类数组对象数组具有一个基本特征索引。这是一般对象所没有的。是利用对象的键值对存取数据,而却是利用数组的索引。 1. 什么是 arguments MDN 上解释: arguments 是一个类数组对象。代表传给一个function的参数列表。 我们先用一个例子直观了...

    codergarden 评论0 收藏0
  • JavaScript中的执行上下文和变量对象

    摘要:以上简单总结了下对执行上下文和变量对象的理解,主要在于记录总结一下学习成果,目前文章的水平实在不敢谈分享。 执行上下文(Execution Context) 文章同步到github javaScript中的执行上下文和变量对象 JavaScript代码执行的过程,包括编译和执行两个阶段,编译就是通过词法分析,构建抽象抽象语法树,并编译成机器识别的指令,在JavaScript代码编译阶段...

    why_rookie 评论0 收藏0
  • 编写高质量JavaScript代码之使用函数

    摘要:构造函数调用使用操作符来调用函数则视其为构造函数。构造函数的主要职责是初始化该新对象。使用方法定义高阶函数允许使用者给回调函数指定接收者。当给高阶函数传递对象方法时,使用匿名函数在适当的接收者上调用该方法。 参考书籍:《Effective JavaScript》 使用函数 理解函数调用、方法调用及构造函数之间的不同 函数、方法和构造函数是单个构造对象的三种不同的使用模式。 函数调用...

    yankeys 评论0 收藏0
  • JavaScript函数式编程(0):函数基础 arguments、this、apply()、cal

    摘要:参数引用函数的上下文,函数上下文来自于等面向对象语言,中的依赖于函数声明。没有重载函数没有签名,因为其参数是由包含零或多个值的数组来表示的。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。 1 函数参数 函数的实参和形参个数可以不等,之所以会这样,原因是 ECMAScript 中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪...

    陈伟 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<