第26讲 js函数调用过程内存分析 js函数细节

u js函数的调用过程,内存分析:

案例:


  1. //abc 是一个函数,它接受数值  
  2.  
  3. function abc(num1){  
  4.  
  5. if(num1>3){  
  6.  
  7. abc(--num1);//递归  
  8.  
  9. }  
  10.  
  11. document.writeln(num1);  
  12.  
  13. }  
  14.  

如果这样调用abc(5),则输出334

分析图:

第26讲 js函数调用过程内存分析 js函数细节

特别强调一下,js的函数天然支持可变参数:

比如:


  1. //编写一个函数,可以接受人一多个数,并计算他们的和  
  2.  
  3. function abc2(num1){//abc2()中有参,无参都没有关系  
  4.  
  5. //在js中有一个arguments(静态变量),可以访问所有传入的值  
  6.  
  7. window.alert(arguments.length);  
  8.  
  9. //遍历所有的参数  
  10.  
  11. for(var i=0;i<arguments.length;i++){  
  12.  
  13. window.alert(arguments[i]);  
  14.  
  15. }  
  16.  
  17. }  
  18.  

可以这样调用

abc2(5);

abc2(1,"hello,world",3,4);

※js中不支持重载

比如:js中出现

function abc2(){

}

function abc2(num1){

}

都用到2个函数时会报错。