callee与caller的区别简单介绍
分类:实例代码
对于外表比较相似的东西,我们通常比较关注他们的区别是什么。
标题中的两个东西外表就比较相似,下面就来介绍一下它们的区别有哪些。
一.callee属性:
此属性属于arguments对象,也就是说使用的时候要用如下形式:
arguments.callee
它指向的是arguments所属的函数。
代码实例如下:
function func(num){ if (num<=1) { return 1; } else{ return num*arguments.callee(num-1); }; }; console.log(func(5));
上面的通过arguments.callee实现了递归效果。
二.caller属性:
此属性属于一个函数对象,它指向当前函数所属于的直接父函数,也可以说调用当前函数的函数。
代码实例如下:
function father(){ children(); }; function children(){ console.log(children.caller); }; father();
上面简单介绍了两个属性的基本用法,当然区别也就看出来了。
更多内容可以参阅arguments.callee和caller的用法一章节。
一线大厂高级前端编写,前端初中阶面试题,帮助初学者应聘,需要联系微信:javadudu