JavaScript没有重载的概念,后面的函数会覆盖前面定义的函数

东明兄 2017-10-09
0条评论 1,650 次浏览
东明兄 2017-10-090条评论 1,650 次浏览

<script> 
    var m= 1, j = k = 0; 
    function add(n) { 
        return n = n+1; 
  } 
    y = add(m); 
    function add(n) { 
        return n = n + 3; 
    } 
z = add(m); 
</script> 




js里面没有函数重载的概念,在其他语言中(如java)java中,可以存在同名函数,
只要传入的参数数量或者类型不同即可。在js中,定义了两个同名函数后,
后面的函数会覆盖前面定义的函数。结合这道题来说,由于函数声明提升,
所以函数声明会提前,由于存在同名函数,后面的add函数将覆盖第一个add函数,
所以两次调用add()返回的值是相同的。也就是y,z都为4.


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注