1.每个函数都存在一个arguements的对象 尔callee存在于arguements
callee是arguements arguements的属性
callee的使用需要在函数内部进行访问
1.递归
function add(a) { console.log(add.caller) if (a==1) return 1; return a*add(a-1); } //如果 你把函数赋值给了 别的变量var other=add;add=nullother(2)//将会报错 因为return a*add(a-1);时候 add不再是函数 function add(a) { console.log(add.caller) if (a==1) return 1; return a*arguments.callee(a-1); } //如果 你把函数赋值给了 别的变量var other=add;add=nullother(2)//正常 因为return a*arguments.callee(a-1);//时候 arguments.callee将会指向other let a=(function as() { if (a==1) return 1; return a*as(a-1); }) //因为严格模式 不支持arguement 所以可以用以上的方式替代 完成递归