【问题标题】:Overriding a method in javascript or two methods of javascript with the same name and parameters覆盖javascript中的一个方法或两个具有相同名称和参数的javascript方法
【发布时间】:2014-04-17 12:58:45
【问题描述】:

我有一个 jsp,其中包含许多 javascript 文件。我在单击按钮时注册了一个方法名称“validate()”。

我将这个方法定义写在一个包含在 jsp 中的 javascript 文件 (validator1.js) 中。 现在,当触发按钮的 onclick 事件时,将调用另一个文件(“globalValidator1.js”)中的 validate 方法。

现在我已经更改了 onclick 方法的名称和我的方法的定义,

但是有没有一种方法可以确保我的方法被调用? 任何意见将不胜感激。

【问题讨论】:

  • @Gautam:感谢您的参考,但我没有使用 OOP,它是一种普通的 javascript 方法
  • 您必须消除这两个函数的歧义,要么从全局范围中删除其中一个并以不同的方式调用它,像您所做的那样更改它们的名称,或者将每个验证器文件中的代码包装到它的拥有自己的 JavaScript“类”(或模块、命名空间或其他范围机制)并适当地使用它们。

标签: javascript jquery jsp


【解决方案1】:

你可以这样尝试:

validator1.js

window.ur = {
    validate : function () {
      // ur validation logic
    };
};

ur.jsp

ur.validate();

globalValidator1.js //如果你不允许你碰这个,你可以跳过这部分

window.glb = {
    validate : function () {
      // others validation logic
    };
};

【讨论】:

  • 感谢您的回复,您能帮帮我吗?是否有规则让浏览器决定从具有相同签名的两个方法中调用哪个方法?
猜你喜欢
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 2013-01-21
  • 2017-11-05
  • 2019-11-08
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多