javascript函数篇2、深刻理解为何javascript中没有函数重载

能够先看上篇文章理解javascript中的函数参数与函数名来更好地理解这篇文章的内容。 在其余语言中,能够为一个函数编写两个定义,只要这两个函数的参数个数或者参数类型不一样便可。可是在javascript中,因为函数参数没有个数与类型的限制,而是由一个数组来表示的,因此javascript中的函数是不可能实现函数重载的。 结合函数名为指针(上篇文章有详细介绍看下上篇文章可以更好的理解这一问题):javascript

function fn (a) {
	return a + 5
}
function fn (a) {
	return a * 5
}
console.log(fn(1)) // 5
复制代码

由于fn仅仅是一个指向函数的指针,所以在再次定义函数fn的时候,实际上是改变fn的指针使其指向了后面的函数对象,所以最后调用fn(1)执行的时候后面的函数,结果为5,过程以下图: java

在这里插入图片描述
相关文章
相关标签/搜索