网络编程
位置:首页>> 网络编程>> JavaScript>> 详解JavaScript函数callee、call、apply的区别

详解JavaScript函数callee、call、apply的区别

作者:五月君  发布时间:2024-05-11 10:23:21 

标签:Js,callee,call,apply

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的区别详解整合网站的支持!

来源:https://www.imooc.com/article/280009

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com