详解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 相关文章推荐
JavaScript之Getters和Setters 平台支持等详细介绍
Dec 07 Javascript
不用锚点也可以平滑滚动到页面的指定位置实现代码
May 08 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
Javascript简单实现面向对象编程继承实例代码
Nov 27 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 Javascript
js简单正则验证汉字英文及下划线的方法
Nov 28 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
Aug 29 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
Feb 26 Javascript
vue实现简单的星级评分组件源码
Nov 16 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
Apr 10 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
简单介绍Python中的struct模块
2015/04/28 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
python中学习K-Means和图片压缩
2017/11/20 Python
Python封装原理与实现方法详解
2018/08/28 Python
Python global全局变量函数详解
2018/09/18 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
Python-split()函数实例用法讲解
2020/12/18 Python
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
环境科学专业个人求职信
2013/09/26 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
社区居务公开实施方案
2014/03/27 职场文书
好学生评语大全
2014/05/05 职场文书
励志演讲稿500字
2014/08/21 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
物业工程部岗位职责
2015/02/11 职场文书
2015年小学财务工作总结
2015/07/20 职场文书