详解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 相关文章推荐
激活 ActiveX 控件
Oct 09 Javascript
修改jQuery Validation里默认的验证方法
Feb 14 Javascript
Array栈方法和队列方法的特点说明
Jan 24 Javascript
Javascript this 关键字 详解
Oct 22 Javascript
angular.element方法汇总
Jan 07 Javascript
js完美解决IE6不支持position:fixed的bug
Apr 24 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
javascript实现平滑无缝滚动
Aug 09 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
简单谈谈axios中的get,post方法
Jun 25 Javascript
浅谈Javascript中的对象和继承
Apr 19 Javascript
node.js +mongdb实现登录功能
Jun 18 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
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
js封装的textarea操作方法集合(兼容很好)
2010/11/16 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
深入理解JavaScript的值传递和引用传递
2018/10/24 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
python list转dict示例分享
2014/01/28 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
python导入模块交叉引用的方法
2019/01/19 Python
python操作kafka实践的示例代码
2019/06/19 Python
python实现从wind导入数据
2019/12/03 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
知识竞赛活动方案
2014/02/18 职场文书
第二课堂活动总结
2014/05/07 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
python中取整数的几种方法
2021/11/07 Python