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


Posted in Javascript onMarch 08, 2019

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的区别详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Jquery + Ajax调用webService实例代码(asp.net)
Aug 27 Javascript
jquery常用操作小结
Jul 21 Javascript
第一章之初识Bootstrap
Apr 25 Javascript
Jquery on方法绑定事件后执行多次的解决方法
Jun 02 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
Mar 09 Javascript
详解Vue中过度动画效果应用
May 25 Javascript
详解react如何在组件中获取路由参数
Jun 15 Javascript
Vue利用History记录上一页面的数据方法实例
Nov 02 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
Dec 14 Javascript
微信小程序实现的图片保存功能示例
Apr 24 Javascript
vue设置默认首页的操作
Aug 12 Javascript
vue绑定数字类型 value为数字的实例
Aug 31 Javascript
利用angular自动编译andriod APK的绕坑经历分享
Mar 08 #Javascript
详解小程序循环require之坑
Mar 08 #Javascript
详解js 创建对象的几种方法
Mar 08 #Javascript
浅谈Javascript常用正则表达式应用
Mar 08 #Javascript
validform表单验证的实现方法
Mar 08 #Javascript
webpack4.x下babel的安装、配置及使用详解
Mar 07 #Javascript
Webpack4 使用Babel处理ES6语法的方法示例
Mar 07 #Javascript
You might like
十天学会php(2)
2006/10/09 PHP
php实现用户在线时间统计详解
2011/10/08 PHP
深入PHP变量存储的详解
2013/06/13 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
初婚未育证明
2014/01/15 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android