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介绍 的相关文章

  • 为运行 python 脚本指定带空格的参数

    如何使用包含空格的参数运行 python 我正在使用 MacOS 例如 gt python testProgram py argument 1 argument 2 其中 参数 1 是单个参数 其中 参数 1 是单个参数 你基本上已经回答了
  • Groovy 动态添加带参数的方法

    我想向现有类 java util Date 添加一个方法 格式化字符串 fmt 我的代码如下 Date metaClass toFormatString String fmt SimpleDateFormat sdf new SimpleD
  • 解包参数:只有命名参数可以跟在*表达式后面

    以下代码在 Python 中运行得非常好 def f x y z return x y z a 1 2 f 3 a 的要素a像你这样称呼它一样打开包装f 3 1 2 它返回 3 1 2 精彩的 但我无法解开其中的元素a进入first两个论点
  • 将可选参数传递给函数,三个点

    我很困惑如何 works tt function return x 为什么不tt x 2 return 2 相反 它失败并出现错误 tt x 2 中的错误 未找到对象 x 尽管我路过x作为论据 因为你在其中传递的所有内容 停留在 您传递的未
  • 我应该如何将对象传递给子例程?

    这些方法之一是最好还是最差的方法 使用范围 my cache CHI gt new driver gt File expires in gt 3600 sub one if my data cache gt get key one sub
  • 如何编写接受无限参数的函数?

    我只能找到one函数采用可变数量参数的方式 是这样的 include
  • 在 python 中具有任意数量的带有命名默认值的参数

    我想用 python 编写一个函数 除了一个命名参数 带有默认值 之外 它还可以接受任意数量的未命名参数 例如 我想写这样的东西 def myFunc args optDefault 1 但这只是给出了语法错误 有没有等效的方法来做到这一点
  • Python 函数可选参数 - 可以添加为条件吗?

    是否可以以某种方式将条件语句分配给可选参数 我最初的尝试使用以下结构 但没有成功 y some value if x someValue else anotherValue 其中 x 已预先分配 更具体地说 我希望我的函数签名看起来像 de
  • javascript:将参数传递给对象构造函数

    我正在编写一个jquery lib 我需要实现日期时间函数 我需要创建一个 Date 函数 它返回一个新的 Date 对象 如何将 Date args 函数的参数传递给 Date 对象构造函数以创建新的日期对象 我尝试了这样的方法 me是插
  • 在 php 中解压参数数组

    Python 提供了 运算符来解压元组列表并将它们作为参数提供给函数 如下所示 args 3 6 range args call with arguments unpacked from a list 这相当于 range 3 6 有谁知道
  • 具有多个参数的 iOS PerformSelectorOnMainThread

    我想从另一个线程在主线程上执行选择器 但选择器有多个参数 类似于 void doSomethingWith int a b float b c float c d float d e float e 我怎样才能让它工作performSele
  • Python 函数中参数的最大数量是多少?

    众所周知 Python 函数最多可以有 256 个参数 我很想知道这个限制是否适用于 args and kwargs当它们以下列方式展开时 items 1 2 3 4 5 6 def do something items pass 我问这个
  • 将数组转换为函数参数列表[重复]

    这个问题在这里已经有答案了 是否可以将 JavaScript 中的数组转换为函数参数序列 例子 run render 10 20 200 200 function run calls var app app is retrieved fro
  • 汇编,多个参数 -m32 / linux (与 C 中的 stdarg 相同)

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

    给定以下函数 def foo a b c pass 如何获得传入参数的列表 元组 字典 等 无需自己构建结构 具体来说 我正在寻找 JavaScript 的 Python 版本arguments关键字或 PHP 的func get args
  • 使用列表的内容作为单个多参数函数的位置参数

    是否有一个标准的 Haskell 函数 或模式 来提取列表的内容并将它们提供给函数 就好像它们是函数的有序位置参数一样 例如 考虑函数 当给定两个位置参数时 将从它们中生成一个二元组 3 4 gt 3 4 假设我有一些我无法更改的外部函数调
  • 关于可用性和“美观”的争论

    作为一名 UI 人员 编码和设计用户界面 我经常发现自己处于一种奇怪的境地 与程序员和其他 外行 争论用户界面的质量 我发现争论颜色 图标或布局之类的事情有点困难 而且似乎没有事实的对错 但是 尽管没有令人信服的论据 我仍然知道 即感觉 有
  • 检测传递的参数是否是数组? JavaScript [重复]

    这个问题在这里已经有答案了 可能的重复 如何检测变量是否是数组 https stackoverflow com questions 1058427 how to detect if a variable is an array 我有一个简单
  • 主流编译器是否将引用传递基本类型转换为复制传递?

    通过引用传递对象是向其传递地址的更简单 更快且更安全的方法 但对于大多数编译器来说 都是一样的 引用实际上是指针 现在基本类型怎么样int 将地址传递给int在函数内部使用它会比通过复制传递它慢 因为在使用之前需要取消引用指针 现代编译器如
  • 在 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

随机推荐