2017-03-17 71 views
0

我試圖將參數傳遞給函數,但無法弄清方法鏈接.bind時如何執行此操作。使用.bind時將參數傳入回調函數

我想我的問題是雙重的:

1)你如何傳遞參數給回調函數(在這種情況下,printEvent)當你使用綁定?

2)此外,您如何實際將pointerdown事件傳遞給printEvent函數?

var app = { 

    fruit : 'apple', 

    printEvent: function(event){ 
    console.log(event + this.fruit); 
    }, 

    eventListeners:function(){ 
    var target = document.getElementById('elementId'); 
    target.addEventListener('pointerdown', this.printEvent(event).bind(this)); 
    } 

} 
+1

你的意思是'target.addEventListener( 'pointerdown',this.printEvent.bind(這一點, 'pointerdown'));'? – Li357

+0

太棒了,這就回答了第一個問題。 :)除了,我怎麼實際傳遞'pointerdown'事件本身。現在,你的解決方案只通過一個字符串 – Modermo

+1

我以爲你只是想要的字符串。在這種情況下,只需綁定'this'。 'event'會自動被傳遞。 – Li357

回答

1
var app = { 
    fruit: 'apple', 

    printEvent: function (event) { 
    console.log(event.target, event.type, this.fruit) 
    }, 

    eventListeners: function() { 
    document.getElementById('elementId').addEventListener('pointerdown', this.printEvent.bind(this)) 
    } 
}