Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果函数来自外部JavaScript库,如何处理JavaScript中冲突的函数名?_Javascript - Fatal编程技术网

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

如果函数来自外部JavaScript库,如何处理JavaScript中冲突的函数名?,javascript,Javascript,我有两个外部JavaScript库文件必须加载到同一页面上。它们都有一个名为“autoSave()”的函数,都没有参数。我无法修改它们的签名,因为它们不是我的脚本文件 如何显式调用脚本a或脚本B中的函数?如何确定优先级?第二个脚本定义的函数将覆盖第一个脚本定义的函数 在包含脚本B之前,可以保存脚本a中函数的副本 例如: <script type="text/javascript" src="Script A"></script> <script type="text

我有两个外部JavaScript库文件必须加载到同一页面上。它们都有一个名为“autoSave()”的函数,都没有参数。我无法修改它们的签名,因为它们不是我的脚本文件


如何显式调用脚本a或脚本B中的函数?如何确定优先级?

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

在包含脚本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>

var autoSave_A=自动保存;
var autoSave_B=自动保存;
顺便注意,如果脚本A按名称调用
autoSave
,脚本将调用错误的
autoSave
,并且(可能)停止工作。

您可以通过在使用包装器方法从任一脚本调用函数之前交换
autoSave
函数来解决此问题。

相同函数名的第二个函数声明会覆盖先前的函数声明,因此它将取决于脚本的包含顺序。

在我看来,您的库应该具有名称空间,因此,您可以轻松地调用
lib1.autoSave()
lib2.autoSave(arg)

目标是尽可能地使用

请看以下文章:


是的,但他无法修改脚本。我发现一个函数可以用于为两个对象生成冲突函数名列表。