我聽說這是可以做到這樣的事情獲取函數參數
this[func].apply(this, Array.prototype.slice.call(arguments, 1));
但有訪問arguments
對象我需要的是函數內。
所以,如果我是,例如,運行功能function1
中的代碼,有沒有辦法獲得不同功能的參數function2
?
整個問題是我想添加事件給任何給定的元素。但是這個元素可能已經附加了另一個事件。所以,如果我有,例如,連接到一個元素中加入「onClick」事件,我將做到以下幾點:
var event = 'onclick';
if(typeof currentElement[event] === 'function'){
cf = currentElement[event];
f = function(){
cf();
func();
}
}else f = func;
currentElement[event] = f;
現在這兩個功能,新功能和先前的功能,正在被調用。問題是傳遞給前一個函數的參數在這個方法中丟失了。
有沒有人知道在我們的例子中動態調用一個函數時是否有可能不會丟失參數?
OBS:jQuery是不是一個選項:/
請使用'addEventListener'或'attachEvent';非常容易。 –
對於這個特定的情況,你知道這兩個函數接收什麼參數 - 它們是相同的參數,不能改變。它是所有瀏覽器中的「事件」對象,除IE之外,它未定義。 – slebetman