2011-11-09 70 views
-1

可能重複:
How do I pass arguments to bound methods如何正確使用bind()?

我如何在這種情況下使用bind()。 我需要綁定一個函數...但下面的代碼調用它。我如何使用bind()。我閱讀了MDN文檔,但沒有意義。

bind_enter_key和bind_file_upload是我寫的方法。

mdn documentation on bind

m5('signin_pass',bind_enter_key(event,interface_signin)); // this does not work 
m5('upload_file',bind_file_upload); 

// just a minimzer 

function m5(a,b) 
    { 
    return document.getElementById(a).onkeypress=b; 
    } 
+0

EXACT相同的代碼(甚至具有相同的代碼註釋)通過兩個不同的用戶名發佈在兩個單獨的問題中。要麼這是家庭作業,要麼一個人通過兩個用戶名進行雙重發布。該dup [這裏](http://stackoverflow.com/questions/8058862/how-do-i-pass-arguments-to-bound-methods/8058993#8058993)已被回答。 – jfriend00

回答

2

哇,你真的通過兩種不同的方式(一個在你的函數名和一個你想對這個函數的操作)使用bind使這個混亂。

m5('signin_pass', bind_enter_key.bind(null, event, interface_signin)); 

注意你似乎做這個,這可能是一個可怕的想法是結合的window.event當前值。更好的可能是

m5('signin_pass', function (event) { 
    return bind_enter_key(event, interface_signin); 
});