租用问题

质量为本、客户为根、勇于拼搏、务实创新

< 返回租用问题列表

js的arguments,callee和caller如何使用

发布时间:2024-03-21 19:35:46

js的arguments,callee和caller如何使用

  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 在严格模式下会被禁用。因此,在严格模式下最好不要使用这两个属性。