JavaScript 函数相关属性

1.name

 既函数名

function test(){
  console.log("Haha")
};
console.log(test.name)//test

2.length属性

表示形参个数

function test(x,y,z){
  console.log("Haha")
};
console.log(test.length)//3

注:注意与arguments区别,arguments:伪数组对象,存的是实参,实参个数不一定等于形参个数(https://www.cnblogs.com/nailc/p/9186705.html)

3.caller属性

表示函数的调用者,全局node和浏览器调用的不一样.

  a.在函数中

function test(){
    function test1(){
        function test2(){
            function test3(){
                    console.log(test3.caller)//[Function:test2]
                }
        }
    }
};
test()

 b.全局-node

function test(){
   console.log(test.caller)//[Function]
};
test()

 c.全局-浏览器

function test(){
   console.log(test.caller)//null
};
test()

4.callee

callee不是函数的属性,而是arguments对象的属性。该属性是一个指针,指向拥有这个arguments对象的函数,可降低函数和函数名的关联。

原文地址:https://www.cnblogs.com/nailc/p/9187199.html