详解JavaScript函数callee、call、apply的区别

 更新时间:2019年03月08日 09:54:20   作者:五月君  
这篇文章主要介绍了JavaScript函数callee、call、apply的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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));

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函数模式详解

    文章对javascript的四种函数模式进行了详细的解释,并附上示例,方便小伙伴们理解并应用,希望对大家能有所帮助。
    2014-11-11
  • javascript学习笔记(十八) 获得页面中的元素代码

    javascript学习笔记(十八) 获得页面中的元素代码

    javascript学习笔记之获得页面中的元素代码,需要的朋友可以参考下
    2012-06-06
  • 窗口没有提示自动关闭的js代码

    窗口没有提示自动关闭的js代码

    窗口没有提示自动关闭的js代码...
    2007-03-03
  • JavaScript for循环 if判断语句(学习笔记)

    JavaScript for循环 if判断语句(学习笔记)

    下面小编就为大家带来一篇JavaScript for循环 if判断语句(学习笔记)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Javascript学习笔记5 类和对象

    Javascript学习笔记5 类和对象

    首先,不得不说,我无法达到抛开类和对象的概念来看Javascript的境界,对于Javascript是否是面向对象的说法有很多,不过我最认同的还是Javascript是一种“基于prototype的面向对象语言”。
    2010-01-01
  • javascript基础知识分享之类与函数化

    javascript基础知识分享之类与函数化

    在C++中是以class来声明一个类的,JavaScript与C++不同,它使用了与函数一样的function来声明,这就让许多学Jscript的朋友把类与函数混在一起了,在Jscript中函数与类确实有些混,但使用久了自然会理解,这篇文章是针对想进攻面向对象编程的朋友而写,就不打算讨论得太深了
    2016-02-02
  • Javascript this 关键字 详解

    Javascript this 关键字 详解

    Javascript是一种很灵活的语言, 而This关键字又是灵活中的灵活, 但是因为它的灵活, 也注定了它的难用.以前我用this的时候, 都会觉得不踏实, 老是担心它不知道怎么地就会指到另外的什么地方.其实, 这都是因为, 我们对它的不了解.
    2014-10-10
  • JavaScript中constructor()方法的使用简介

    JavaScript中constructor()方法的使用简介

    这篇文章主要介绍了JavaScript中constructor()方法的使用简介,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • 讲解JavaScript中for...in语句的使用方法

    讲解JavaScript中for...in语句的使用方法

    这篇文章主要介绍了讲解JavaScript中for...in语句的使用方法,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • 深入分析原生JavaScript事件

    深入分析原生JavaScript事件

    这篇文章主要介绍了原生JavaScript事件,包括DOM0事件模型、DOM2事件模型等的相关知识,需要的朋友可以参考下
    2014-12-12

最新评论