JS之arguments、arguments.callee、caller介绍

2023-10-28

arguments:调用函数时产生的,保存实参。

arguments.callee:被调用时指向函数自身。

caller:指向调用某函数的那个函数。

 

下面通过一段代码说明它们的用处:

function A (n) {
    console.log(arguments);                  // Arguments [1, callee: ƒ, Symbol(Symbol.iterator): ƒ]
    console.log(A);                          // ƒ A(n)
    console.log(arguments.callee);           // ƒ A(n)
    console.log(A.caller);                   // ƒ B ()
    console.log(arguments.callee.caller);    // ƒ B ()
}

function B () {
    A(1)
}

B();

arguments 是一个对应于传递给函数的参数的类数组对象。是所有(非箭头)函数中都可用的局部变量。它类似于Array,但除了length属性和索引元素之外没有任何Array属性。typeof参数返回 'object'。

注意:现在在严格模式下,arguments对象已与过往不同。不再与函数的实际形参之间共享,同时caller属性也被移除。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS之arguments、arguments.callee、caller介绍 的相关文章

  • 有没有办法对可变参数宏参数使用 C++ 预处理器字符串化?

    我的猜测是这个问题的答案是否定的 但如果有办法的话那就太棒了 为了澄清一下 假设我有以下宏 define MY VARIADIC MACRO X Does some stuff here in the macro definition 我想
  • 使用参数变量获取传递给 ES6 箭头函数的参数 [重复]

    这个问题在这里已经有答案了 我了解箭头函数在 ES6 中的工作原理以及词法 this 但我想知道是否有人知道如何将参数传递给箭头函数 在 ES5 中 你可以简单地执行以下操作 function foo bar baz console log
  • C++ 当模板参数推导失败时

    为什么 C 不能确定我打算创建一个unique ptr a 用这个语法 a 之前已被声明为unique ptr a a unique ptr new A 必须包括在内似乎非常多余 a 这适用于我使用的大多数函数模板 为什么 unique p
  • 汇编,多个参数 -m32 / linux (与 C 中的 stdarg 相同)

    为了解决这个问题 我了解C 而且我仍然是汇编的初学者 所以我在这里遇到了一个小问题 我在获取多个参数时遇到了一些麻烦 如果我应该这样做的话 也许可以对它们进行计数 并在汇编代码中使用格式参数 尝试向具有许多参数的字符串添加一些字节 我知道如
  • 获取传递给函数的参数的列表/元组/字典?

    给定以下函数 def foo a b c pass 如何获得传入参数的列表 元组 字典 等 无需自己构建结构 具体来说 我正在寻找 JavaScript 的 Python 版本arguments关键字或 PHP 的func get args
  • 如何使用 Head 和 Tail 打印文件的特定行

    我想说输出文件的第 5 10 行 作为传入的参数 我怎样才能使用head and tail去做这个 where firstline 2 and lastline 3 and filename 1 运行它应该如下所示 lines sh fil
  • 错误:参数类型不兼容

    我正在用 C 写一个列表 以下是来源 include
  • scikit-learn 中的“详细”参数

    许多 scikit learn 函数都有verbose根据他们的文档 c 控制冗长 越高 消息越多 例如 网格搜索简历 https scikit learn org stable modules generated sklearn mode
  • JavaScript 未知数量的参数

    在我的项目中 我注册了不同的函数 具有不同数量的参数 作为许多事件的侦听器 当事件发生时 我需要触发相关的函数 我接收以数组形式传递给侦听器方法的参数 而侦听器函数需要每个单独的参数 所以 我正在这样做 但我不喜欢这种方法 想知道是否有一种
  • 在 TypeScript 中将数组作为参数传递

    我有两种方法 static m1 args any using args as array static m2 str string args any do something call to m1 m1 args 致电给m1 1 2 3
  • “形式参数“foo”与多个参数匹配”-如何在 R 中处理这个问题?

    有时 调用带有某些参数的函数会导致错误消息formal argument foo matched by multiple actual arguments 是否可以打印不明确的实际参数列表 我问这个问题的原因是目前的问题plot类对象的函数
  • 在 Python 3.2 中使用 HTMLParser

    我一直在使用 HTML 解析器从网站中抓取数据并剥离 html 编码 我知道各种模块 例如 Beautiful Soup 但决定走不依赖 外部 模块的道路 Eloff 提供了一个代码 在 Python 中从字符串中去除 HTML https
  • C 编程:正向变量参数列表

    我正在尝试编写一个函数 它接受可变数量的参数 如 printf 执行一些操作 然后将变量列表传递给 printf 我不知道如何做到这一点 因为它似乎必须将它们推入堆栈 大约是这样的 http pastie org 694844 http p
  • 将字符串解析为 argv/argc

    C 中是否有一种方法可以解析一段文本并获取 argv 和 argc 的值 就像文本已传递到命令行上的应用程序一样 这不必在 Windows 上工作 只需在 Linux 上工作 我也不关心参数的引用 我很惊讶没有人使用标准 POSIX 功能提
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 如何为 Azure Service Fabric 中的 docker 容器指定命令行参数

    我有一个泊坞窗图像wiremock net nano https hub docker com r sheyenrath wiremock net nano 它接受额外的命令行参数 例如 Port and AdminUsername 正常的
  • C 函数声明中的无类型参数

    最近我一直在查看 Steven Skiena 的在线资源中的一些 C 示例代码 算法设计手册 http www cs sunysb edu skiena algorist book programs 并且对他的一些函数调用的语法感到困惑 诚
  • 如何在参数上使用 .reduce() 而不是特定的数组或对象?

    我想定义一个函数 flatten 将多个元素展平为一个数组 我知道以下是不可能的 但本质上我想这样做 var flatten function var flattened arguments reduce function acc elem
  • Haskell 中的参数数量和无点 [重复]

    这个问题在这里已经有答案了 对于多重模式匹配 不同数量的参数是不可能的 即使是无点的 foo True b b 2 foo id 例如 不起作用 但 foo True 2 foo id 做 有时我们只能在函数的一部分使用 point fre
  • 与 glib-2.0 链接时,cygwin gcc 4.3 中的参数顺序很重要

    我正在尝试使用 cygwin 编译适用于 os x 和 linux 的代码 然而 我发现 gcc 的参数顺序给出了意想不到的结果 例如 以下情况会失败 gcc std gnu99 I usr include glib 2 0 I usr l

随机推荐