js的arguments,callee和caller怎么使用

655Z技术栈 JS脚本 2026年01月07日 11

  1. arguments: 在 JavaScript 中,arguments 是一个类数组对象,它包含了当前函数被调用时传入的所有参数。可以通过 arguments 对象来访问这些参数,而无需提前定义函数的形参。例如:
function sum() { let total = 0; for (let i = 0; i < arguments.length; i++) { total += arguments[i]; } return total; } console.log(sum(1, 2, 3)); // 输出 6
  1. callee: callee 是 arguments 对象的一个属性,它指向当前正在执行的函数对象。通常情况下,可以使用函数名来引用函数自身,但在递归等特殊情况下,callee 属性可以用于在函数内部引用自身。例如:
function factorial(n) { if (n <= 1) { return 1; } else { return n * arguments.callee(n - 1); } } console.log(factorial(5)); // 输出 120
  1. caller: caller 是 arguments 对象的一个属性,它指向调用当前函数的函数对象。可以使用 caller 属性来获取调用当前函数的函数的引用。例如:
function outerFunction() { innerFunction(); } function innerFunction() { console.log(arguments.callee.caller); } outerFunction(); // 输出 outerFunction 的函数定义

需要注意的是,callee 和 caller 在严格模式下会被禁用。因此,在严格模式下最好不要使用这两个属性。

提供PHP及ThinkPHP框架的定制开发、代码优化,PHP修改、ThinkPHP修改。

邮箱:yvsm@163.com 微信:yvsm316 QQ:316430983
关闭

用微信“扫一扫”