修改现有的JavaScript类方法

时间:2014-01-09 01:45:45

标签: javascript jquery

我有一个插件,它有一个我想要添加的类方法。由于这是一个WordPress插件,我无法真正编辑他们的代码,因为未来的更新会破坏我的更改。

如何添加:

alert('bar');

到下面的编辑方法:

var builder_blvd = {
    // Lots of stuff here
    edit : function ( name, page )  {
        alert('foo');
    }
    // Lots of other stuff here
};

结果应该是2个警告信息,一个用于'foo'而另一个用于'bar'?这是可行的还是我必须制作整个builder_blvd类的新副本?

2 个答案:

答案 0 :(得分:5)

(function() {
    var original = builder_blvd.edit
    builder_blvd.edit = function(name, page) {
        original.call(builder_blvd, name, page);
        alert('bar');
    }
}());

builder_blvd.edit();

演示:http://jsfiddle.net/xdrh5/

答案 1 :(得分:1)

其他海报提出了一些很好的解决方案。但是spyke01,你不知道是否在插件的下一个版本中,如果作者可能决定做一些像这样简单的事情:

edit : function ( name, page )  {

变为

edit : function ( page, name )  {

尽管如此,所有这些提议的解决方案都会破裂。你真的必须弄清楚如何管理改变他人的代码 - 如果你不能维护它,它可能意味着不首先改变它。否则,如果您稍后更新插件,则必须记住您的确切操作,检查代码更改,并尝试再次实施。

祝你好运。