小编给大家分享一下JavaScript函数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));
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的区别有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。