2014-01-09 55 views
1

我有一個插件,其中有一個我想添加的類方法。由於這是一個WordPress插件,我無法真正編輯他們的代碼,因爲未來的更新會破壞我的更改。修改現有的JavaScript類方法

我怎麼這樣補充:

alert('bar'); 

下面的編輯方法:

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

結果應該是2個警報消息,一個是「富」,另一個是「吧」?這是可行的嗎?還是必須製作整個builder_blvd類的新副本?

回答

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/

+0

這樣做謝謝! – spyke01

1

其他海報也提出了一些很好的解決方案。但是spyke01,你永遠不要知道,如果在插件的下一個版本,如果作者可能決定做這樣簡單的東西:

edit : function (name, page) { 

被改爲

edit : function (page, name) { 

那說,所有這些提議的解決方案都會中斷。你真的要弄清楚如何改變他人的代碼 - 如果你不能維護它,它可能意味着首先不會改變它。因爲否則,如果稍後更新插件,則必須記住所做的操作,檢查代碼更改並嘗試再次實施。

祝你好運。

+0

謝謝,這是一個很好的觀點,我一定會牢記它。 – spyke01