亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

以編程方式將代碼添加到javascript函數

以編程方式將代碼添加到javascript函數

DIEA 2019-12-13 08:58:16
我試圖自定義現有的JS庫而不修改原始JS代碼。這段代碼將加載一些我可以訪問的外部JS文件,而我想做的就是更改原始文件中包含的功能之一,而無需將整個內容復制并粘貼到第二個JS文件中。因此,例如,禁區JS可能具有以下功能:var someFunction = function(){    alert("done");}我希望能夠以某種方式在該函數中追加或添加一些JS代碼。原因主要是在原始的不可觸摸的JS中,該功能非常龐大,如果該JS得到更新,則我用它覆蓋的功能將過時。我不確定這是否可行,但我想我會檢查一下。
查看完整描述

3 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

如果someFunction該功能在全球范圍內可用,則可以緩存該功能,創建自己的功能并調用它。


所以如果這是原始的...


someFunction = function() {

    alert("done");

}

你會做的...


someFunction = (function() {

    var cached_function = someFunction;


    return function() {

        // your code


        var result = cached_function.apply(this, arguments); // use .apply() to call it


        // more of your code


        return result;

    };

})();


注意,我使用了.apply來調用緩存的函數。這樣一來,我就可以保留的期望值this,并可以將傳入的所有參數作為單個參數傳遞,而不管有多少個參數。


查看完整回答
反對 回復 2019-12-13
?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

首先將實際函數存儲在變量中。


var oldFunction = someFunction;

然后定義自己的:


someFunction = function(){

  // do something before

  oldFunction();

  // do something after

};


查看完整回答
反對 回復 2019-12-13
?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

您可以使一個函數調用您的代碼,然后再調用該函數。


var old_someFunction = someFunction;

someFunction = function(){

    alert('Hello');

    old_someFunction();

    alert('Goodbye');

}


查看完整回答
反對 回復 2019-12-13
  • 3 回答
  • 0 關注
  • 413 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號