详解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使用Array.prototype.sort()对数组对象排序的方法
Jan 28 Javascript
JavaScript基于ajax编辑信息用法实例
Jul 15 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
Sep 04 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
Feb 19 Javascript
举例讲解jQuery中可见性过滤选择器的使用
Apr 18 Javascript
javascript this详细介绍
Sep 19 Javascript
基于javascript实现的快速排序
Dec 02 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
vue实现的双向数据绑定操作示例
Dec 04 Javascript
js中对象和面向对象与Json介绍
Jan 21 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
Sep 21 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
Oct 16 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
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
jquery 可排列的表实现代码
2009/11/13 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
js实现数组去重方法及效率?Ρ? target=
2017/02/14 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
Python中多线程的创建及基本调用方法
2016/07/08 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
学生生病请假条范文
2014/02/16 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
物流管理专业推荐信
2014/09/06 职场文书
董事长年会致辞
2015/07/29 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis