2016-03-07 42 views
-1

我有一个很大的js lib女巫我不想改变,因为当他们更新代码时,我必须每次更新。所以我想尽可能少的注入或覆盖。并让我的代码如何在函数中注入/覆盖代码?最佳实践?

的lib的代码和我的代码中,它看起来是这样的:

var Erizo = {} 
Erizo.Stream = function (spec) { 
    var that = Erizo.EventDispatcher(spec); 

    that.init = function (succesCallBack) { 
     Erizo.GetUserMedia(opt, function (stream) { 
      [...]  
      MY CODE 
      [...] 
     } 
    } 
    [...] 
} 

是否有办法注入我的代码和不覆盖孔Erizo.Stream功能?因为这个功能非常大。

感谢

+0

是的,但你可以做开头或结尾代码,不容选择上的某个地方bewteen – juvian

+0

好,谢谢,最初的方式是什么? – Cracker0dks

回答

0

你应该做这样的事情:

var oldFunction = Erizo.GetUserMedia 

Erizo.GetUserMedia = function(opt, callback){ 
    console.log("code injected") 
    oldFunction.apply(this,[opt, callback]) 
} 
+0

谢谢!会尝试这个。 – Cracker0dks