虽然arguments的主要用途是保存函数参数,但是这个对象还有一个callee的属性,该属性是一个指针,指向拥用这个arguments对象的函数;
这种阶乘写法是强耦合,如果外面的函数名改变了,里面就不能拿到预期的结果
function jiecheng(num)(){
if(num<=1){
return 1
}else{
return num *jiecheng(num-1)
}
}
使用callee就不会有这种问题:
function jiecheng(num)(){
if(num<=1){
return 1
}else{
return num *arguments.callee(num-1)
}
}
注意:在严格模式下,arguments.callee会导致错误;
函数的caller属性,会保存着调用当前函数的引用(参考书115页)
最后
以上就是轻松香氛最近收集整理的关于函数arguments对象的callee属性和函数的caller属性的全部内容,更多相关函数arguments对象内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复