JavaScript中callee、call、apply三者有何本质区别?

2026-04-09 00:521阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计375个文字,预计阅读时间需要2分钟。

JavaScript中callee、call、apply三者有何本质区别?

arguments.callee与callee的关联:callee是arguments对象的一个属性。它可以用来引用当前正在执行的函数。这在函数没有命名时非常有用,例如在匿名函数表达式中。

arguments.callee

关于callee的解释:callee 是 arguments 对象的一个属性。可以用于引用该函数的函数体内当前正在执行的函数。这在函数的名称是未知时很有用,例如在没有名称的函数表达式 (也称为“匿名函数”)内。

递归调用实现一个阶乘函数:

function sum(num){ if(num <= 1){ return 1; }else{ console.log(num, arguments.callee(num-1)); return num * arguments.callee(num-1); } } console.log(sum(3));

JavaScript中callee、call、apply三者有何本质区别?

apply使用情况

function box(num1,num2){ return num1+num2; } function sum(num1,num2){ //this 表示全局作用域,浏览器环境下window,node环境global,[]表示传递的参数 return box.apply(this,[num1,num2]); //或者下面写法arguments可以当数组传递 //return box.apply(this,arguments); } console.log(sum(10,10)); //输出结果: 20

call的使用示例

function box(num1,num2){ return num1+num2; } function sum2(num1,num2){ return box.call(this,num1,num2); } console.log(sum(10,10)); //输出结果: 20

总结call、apply两种情况使用的区别: call传递参数是按照数组传递,apply是一个一个传递

以上所述是小编给大家介绍的JavaScript函数callee、call、apply的区别详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对自由互联网站的支持!

本文共计375个文字,预计阅读时间需要2分钟。

JavaScript中callee、call、apply三者有何本质区别?

arguments.callee与callee的关联:callee是arguments对象的一个属性。它可以用来引用当前正在执行的函数。这在函数没有命名时非常有用,例如在匿名函数表达式中。

arguments.callee

关于callee的解释:callee 是 arguments 对象的一个属性。可以用于引用该函数的函数体内当前正在执行的函数。这在函数的名称是未知时很有用,例如在没有名称的函数表达式 (也称为“匿名函数”)内。

递归调用实现一个阶乘函数:

function sum(num){ if(num <= 1){ return 1; }else{ console.log(num, arguments.callee(num-1)); return num * arguments.callee(num-1); } } console.log(sum(3));

JavaScript中callee、call、apply三者有何本质区别?

apply使用情况

function box(num1,num2){ return num1+num2; } function sum(num1,num2){ //this 表示全局作用域,浏览器环境下window,node环境global,[]表示传递的参数 return box.apply(this,[num1,num2]); //或者下面写法arguments可以当数组传递 //return box.apply(this,arguments); } console.log(sum(10,10)); //输出结果: 20

call的使用示例

function box(num1,num2){ return num1+num2; } function sum2(num1,num2){ return box.call(this,num1,num2); } console.log(sum(10,10)); //输出结果: 20

总结call、apply两种情况使用的区别: call传递参数是按照数组传递,apply是一个一个传递

以上所述是小编给大家介绍的JavaScript函数callee、call、apply的区别详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对自由互联网站的支持!