如果函数来自外部JavaScript库,如何处理JavaScript中冲突的函数名?

Rav*_*dev 5 javascript

我有两个外部JavaScript lib文件,我必须在同一个JSP页面上加载.它们都有一个名为"autoSave()"的函数,两者都没有参数.我不能修改他们的签名,因为他们不是我的脚本文件.

如何显式调用脚本A或脚本B中的函数?如何确定优先顺序?

SLa*_*aks 14

第二个脚本定义的函数将覆盖第一个脚本定义的函数.

在包含脚本B之前,您可以从脚本A保存该函数的副本.

例如:

<script type="text/javascript" src="Script A"></script>
<script type="text/javascript">
    var autoSave_A = autoSave;
</script>

<script type="text/javascript" src="Script B"></script>
<script type="text/javascript">
    var autoSave_B = autoSave;
</script>
Run Code Online (Sandbox Code Playgroud)

顺便提一下,如果脚本A autoSave按名称调用,脚本将调用错误autoSave并(可能)停止工作.
您可以通过在autoSave使用包装器方法从任一脚本调用函数之前交换函数来解决这个问题.