<html>
<head lang="en">
<meta charset="UTF-8">
</head>
<body>
<script>
var fun=function(arg){
console.log("我是函数1");
};
var fun=function(arg1,arg2){
console.log("我是函数2");
};
var arg1=1;
var arg2=2;
fun(arg1);
fun(arg1,arg2);
</script>
</body>
</html>
输出
我是函数2
我是函数2
js文件顺序加载
第二个函数的定义覆盖了第一个函数,fun这个名字最终指向了第二个函数,第一个函数消失了,永远不会被调用到了,这跟变量的覆盖是一样的,js中还不存在变量重名的问题,后面定义的变量总会覆盖前面已经定义的变量。