如何调用 JavaScript 函数

发布于 2025-01-03 21:21:31 字数 253 浏览 1 评论 0原文

我在 A.js 中有一个函数 onChangeBrand(),在 B.js 中有一个相同的名称。

那么如何避免这种情况呢?有一个限制 - 我无法更改函数名称。 而且我不允许编辑这两个 Js 文件,因此命名空间对我来说不是一个正确的想法。

我们可以调用诸如 A.onChangeBrand()B.onChangeBrand() 之类的东西吗?

I have a function onChangeBrand() in A.js and there is a same name in B.js.

So how to avoid this situation? There is a constraint - I can't change the function names.
and i am not allowed to edit both the Js files so namespace is not a right idea for me.

Can we call something like A.onChangeBrand() or B.onChangeBrand()?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

青春如此纠结 2025-01-10 21:21:31

好的,如果命名空间不适合您,您可以将代码放在加载这些文件的 script 标记之间,

<script src='a.js'></script>
<script>
var a_onChangeBrand = onChangeBrand; // copy the function
</script>
<script src='b.js'></script>

之后 a_onChangeBrand() 将调用 a.js 中的函数并b.js 中的 onChangeBrand()

但是,如果 a.js 和 b.js 中的某些函数也使用这些函数,则没有任何帮助 - 它们可能会调用最后加载的文件中的函数。

Ok, if namespaces are not for you and you can put your code in between the script tags loading these files

<script src='a.js'></script>
<script>
var a_onChangeBrand = onChangeBrand; // copy the function
</script>
<script src='b.js'></script>

after that a_onChangeBrand() will call the function from a.js and onChangeBrand() from b.js

But nothing will help you if some functions in those a.js and b.js are also using these functions - they might call function from the last file loaded.

子栖 2025-01-10 21:21:31

检查如何在 JavaScript 中使用命名空间,如果您可以编辑 a.js 和 b.js 这两个文件,那么您就可以声明命名空间。请参阅此处的最佳答案:如何在 JavaScript 中声明命名空间?

Check how to use namespaces in JavaScript if you can edit these two files a.js and b.js then you can declare namespaces. See best answer here : How do I declare a namespace in JavaScript?

相对绾红妆 2025-01-10 21:21:31

如果您无法访问源代码,那么以下是一个解决方案(请注意,这不是最漂亮的解决方案):

<script src="http://exmpale.com/a.js"></script>
<script>
 A = { onChangeBrand:onChangeBrand };
</script>

<script src="http://exmpale.com/b.js"></script>
<script>
 B = { onChangeBrand:onChangeBrand };
</script>

这两个函数现在已命名空间并且可以像这样调用:

A.onChangeBrand();     
B.onChangeBrand();

If you don't have access to the source, then the following is a solution (not the prettiest, mind you):

<script src="http://exmpale.com/a.js"></script>
<script>
 A = { onChangeBrand:onChangeBrand };
</script>

<script src="http://exmpale.com/b.js"></script>
<script>
 B = { onChangeBrand:onChangeBrand };
</script>

The two functions are now namespaced and can be invoked like so:

A.onChangeBrand();     
B.onChangeBrand();
记忆里有你的影子 2025-01-10 21:21:31

您可以对您的函数之一执行此操作..

var myNS = new (function() {

    this.onChangeBrand= function() {
        alert('hello!');
    };

})();

然后调用 myNS.onChangeBrand();

类似地,将 myNS2 用于其他函数。这些称为名称空间。

You can do this to one of your function..

var myNS = new (function() {

    this.onChangeBrand= function() {
        alert('hello!');
    };

})();

and then call myNS.onChangeBrand();

Similarly use myNS2 for other function. These are called as namespaces.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文