如何调用 JavaScript 函数
我在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
好的,如果命名空间不适合您,您可以将代码放在加载这些文件的
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 filesafter that
a_onChangeBrand()
will call the function from a.js and onChangeBrand() from b.jsBut 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.
检查如何在 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?
如果您无法访问源代码,那么以下是一个解决方案(请注意,这不是最漂亮的解决方案):
这两个函数现在已命名空间并且可以像这样调用:
If you don't have access to the source, then the following is a solution (not the prettiest, mind you):
The two functions are now namespaced and can be invoked like so:
您可以对您的函数之一执行此操作..
然后调用 myNS.onChangeBrand();
类似地,将 myNS2 用于其他函数。这些称为名称空间。
You can do this to one of your function..
and then call
myNS.onChangeBrand();
Similarly use myNS2 for other function. These are called as namespaces.