详解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 相关文章推荐
对YUI扩展的Gird组件 Part-1
Mar 10 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
Jun 05 Javascript
基于jQuery的左右滚动实现代码
Dec 03 Javascript
Jquery 自定义动画概述及示例
Mar 29 Javascript
js 表单提交后按钮变灰的实例代码
Aug 16 Javascript
javascript实现跨域的方法汇总
Jun 25 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
JS封装通过className获取元素的函数示例
Dec 20 Javascript
AngularJs实现聊天列表实时刷新功能
Jun 15 Javascript
JavaScript操作文件_动力节点Java学院整理
Jun 30 Javascript
js+css实现打字效果
Jun 24 Javascript
Vue press 支持图片放大功能的实例代码
Nov 09 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
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
orm获取关联表里的属性值
2016/04/17 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
Prototype Date对象 学习
2009/07/12 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
js css自定义分页效果
2017/02/24 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
js实现div色块碰撞
2020/01/16 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
python机器人运动范围问题的解答
2019/04/29 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
服装机修工岗位职责
2013/12/26 职场文书
网络营销计划
2015/01/17 职场文书
实习生辞职信范文
2015/03/02 职场文书
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python