文档章节

【JavaScript】callee 与 caller

小草先森
 小草先森
发布于 05/20 11:55
字数 285
阅读 7
收藏 0

callee

callee是函数参数arguments对象的一个属性,它指向参数arguments对象所在的函数自身。

function foo (x) {
	console.log(arguments.callee);
	return x;
}

foo();

从控制台中可以看到打印的结果为:

ƒ foo (x) {
	console.log(arguments.callee);
	return x;
}

它的作用就是在函数内部通过调用arguments.callee()来代替调用函数自身foo()。举个栗子,写一个阶乘函数:

function sum(num){
    if(num <= 1){
        return 1;
    }else{
		// 以往的递归写法
		// return num * sum(num-1); 
        return num * arguments.callee(num-1);
    }
}

console.log(sum(3)); // 打印结果为 6

caller

caller是函数对象的一个属性,该属性保存着调用当前函数的对象,还是举个栗子:

function foo (x) {
	console.log(foo.caller);
	return x + 1;
}

function too () {
	foo(3)
}

too();

打印结果为:

ƒ too () {
	foo(3)
}

因为foo函数是在too函数内部调用的,那么调用foo函数的对象即为too,所以caller指向的就是too这个函数对象。

© 著作权归作者所有

小草先森
粉丝 19
博文 60
码字总数 39980
作品 0
武汉
私信 提问
简析JavaScript中的Function类型(四)——函数的内部属性

函数的内部属性主要有三个:。其中在简析JavaScript中的this关键字中探讨的已经比较清楚了,这里来说下和。 1. arguments 看下面的代码: 如代码所示,声明时没有显式地声明参数,但是在函数...

前端二牛
03/30
0
0
Js中caller和callee的区别

caller返回一个函数的引用,这个函数调用了当前的函数;callee放回正在执行的函数本身的引用,它是arguments的一个属性 caller caller返回一个函数的引用,这个函数调用了当前的函数。 使用这...

菜鸟的进阶
2017/10/20
0
0
JS中caller和callee

caller:   caller是函数对象的一个属性,指的是这个函数对象的调用者,如果调用者,如果是顶层调用者,则返回null. 例: function func(){ }function obj(){ }obj();func(); //调用者为顶级对象...

莫问今朝乄
2018/01/10
0
0
JavaScript方法call,apply,caller,callee,bind的使用详解及区别

一、call 方法 调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容)。 即 “某个方法”当做“指定的某个对象”的“方法”被执行。 ...

续写经典
2012/08/13
0
0
js函数的caller属性和callee

函数的caller属性返回的是调用当前函数的上层函数,caller的初始值是null。当函数没有被其他函数调用时caller的值为null。 function b(){ function c(){ console.log(c.caller); } c(); } b(...

LorinLuo
2014/12/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《精进》的读后感作文2600字

《精进》的读后感作文2600字: 首先,我想先分享我读这本书的过程,我是一名大一的学生,在我高考完的暑假,有一次一位知乎用户的朋友推荐了这本书。当时我看了这本书的封面,有一句话非常的...

原创小博客
29分钟前
2
0
亿万pv的混合云规划实施

基础服务: keepalive,lvs,nginx,dns,ntp,redis集群,yum仓库,web资源 网络高可用 防火墙冗余,交换机堆叠 专线互联 物理机虚拟化 VMware vcenter/ Proxmox...

以谁为师
50分钟前
4
0
聊聊dubbo的LRUCache

序 本文主要研究一下dubbo的LRUCache LRUCache dubbo-2.7.2/dubbo-common/src/main/java/org/apache/dubbo/common/utils/LRUCache.java public class LRUCache<K, V> extends LinkedHashMap<......

go4it
52分钟前
1
0
前端知识点总结——H5

前端知识点总结——H5 1.html5新特性 (1)新的语义标签 (2)增强型表单* (3)音频和视频 (4)Canvas绘图 (5)SVG绘图 (6)地理定位 (7)拖动API (8)Web Worker (9)Web Storage (10)Web Socket 2.增强...

智云编程
55分钟前
0
0
微服务之架构技术选型与设计

本文主要介绍了架构技术选型与设计-微服务选型,Spring cloud 实现采用的技术,希望对您的学习有所帮助。 架构技术选型与设计-DUBBODubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿...

别打我会飞
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部