关于javascript调用重名函数的问题

        在js中如果出现重名方法(单纯的方法名一样),无论参数和返回值是否相同。后面出现的方法都会覆盖前面的方法,即总是调用距离最近的方法。

        比如在一个页面先引入a.js 再引入b.js。他们中间都有一个test()函数。那么会调用b.js中的该方法。另一个场景就是自定义alert()方法来覆盖本身的alert()方法。在需要的页面引入写的有alert()方法的xx.js.那么调用的就是自己写的alert()。(可以用来改alert()的样式)。在不需要改变的页面就不导入相应的xx.js就好。

window.open()也能被重写

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script type="text/javascript">
    function open()
    {
        alert("调用成功")
    }
    function test() {
        window.open("www.baidu.com");
    }
</script>
<body>
<button type="button" onclick="test()">测试</button>
</body>
</html>

结果:

关于javascript调用重名函数的问题