详解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 相关文章推荐
用js实现的检测浏览器和系统的函数
Apr 09 Javascript
关于Javascript模块化和命名空间管理的问题说明
Dec 06 Javascript
关于COOKIE个数与大小的问题
Jan 17 Javascript
基于jquery的blockui插件显示弹出层
Apr 14 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
Feb 12 Javascript
jQuery 计算iframe 窗口大小的方法
May 13 Javascript
JavaScript实现复制内容到粘贴板代码
Mar 31 Javascript
实例详解jQuery的无new构建
Aug 02 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 Javascript
利用Javascript实现简单的转盘抽奖
Feb 13 Javascript
vue多种弹框的弹出形式的示例代码
Sep 18 Javascript
vue自定义filters过滤器
Apr 26 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
极典R601SW收音机
2021/03/02 无线电
PHP新手上路(四)
2006/10/09 PHP
php中动态变量用法实例
2015/06/10 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
Javascript中的变量使用说明
2010/05/18 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
jQuery动态添加
2016/04/07 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
vue配置请求本地json数据的方法
2018/04/11 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
vue全局自定义指令-元素拖拽的实现代码
2019/04/14 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
python 写一个水果忍者游戏
2021/01/13 Python
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
学生个人的自我评价分享
2013/11/05 职场文书
企业给企业的表扬信
2014/01/13 职场文书
行政求职信
2014/07/04 职场文书
停车场管理制度范本
2015/08/05 职场文书
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL