我有一個叫做options的散列。我面臨的問題是options['beforeOpen']
可能已經是一個函數,在這種情況下,我不想覆蓋它。我想改爲調用它,然後調用每次需要調用的另一個函數在另一個匿名函數中嵌入一個匿名函數
在此示例中,需要每次調用的方法是methodThatINeedToDo
。我認爲下面的代碼可以實現這一點,但它沒有按照我的預期工作。
function methodThatINeedToDo(){alert('maintenance');}
var options = {beforeOpen: function(){alert('first');}}
if(typeof options['beforeOpen'] == "function"){
options['beforeOpen'] = function(){options['beforeOpen'].call(); methodThatINeedToAddToDo();}
} else {
options['beforeOpen'] = methodThatINeedToDo;
}
你有什麼問題,這個代碼?它似乎爲我工作。 –
爲什麼選項['beforeOpen']。call()?不應該是選項['beforeOpen']()? – Edorka
爲什麼還要用這種不靈活的解決方案呢? – schlingel