前端学习笔记——javascript callee||caller

简介 获取函数方法本身获取形参个数获取实参个数
<script>
function demo(a, b, c, d) {
console.log(arguments.callee); //获取函数方法本身
console.log(arguments.callee.length); //获取形参个数
console.log(arguments.length); //获取实参个数
}
demo();

//案例
// function sum(n){
// if (n <= 1){
// return 1;
// }
// return n + sum(n - 1);
// }
// var res = sum(10);
// console.log(res);
//相同于上面的方法,需要一个自动执行实现,自动执行没有函数名,只有匿名函数
var sum = (function(n){
if (n <= 1){
return 1;
}
return n + arguments.callee(n - 1); //通过arguments.callee获取本身函数
})(10);
console.log(sum); //打印55


//caller 比起callee来"更没有用",严格模式'use strict'还会报错
//caller 调用当前函数的函数名
//caller案例
function test1() {
test2();
}
function test2(){
console.log(test2.caller);
}

test1();

/*
* 上面案例
* 返回 test1,因为是test1调用了test2
* ƒ test1() {
* test2();
* }
*/










</script>


 

评论禁用

用户名:

验证码:

Top