2016-03-03 4 views
0

у меня есть это:Как вызвать обработчик события с параметрами в Javascript?

var MyParameter = ...; 
var options = { 
    ..., 
    actions: [ 
    { 
     label: 'TheLabel', 
     eventHandler: MyEventHandler 
    } 
    ], 
    ... 
}; 

Но тогда у меня есть это:

function MyEventHandler(MyParameter) {...} 

Как передать параметр в ссылке функции обратного вызова?

+2

[Function # привязывать] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind), возможно, - не уверен, ваш вопрос не ясно –

+0

@ zer00ne Я не хочу копировать весь код, и проблема совершенно ясна. –

+0

@AndrejsIgumenovs Это непонятно для меня, потому что я не знаю, хотите ли вы однажды вызвать слушателя программно (т. Е. Вне контекста фактического события) с определенным значением или если вы хотите убедиться, что функция всегда предоставляется заданный аргумент каждый раз, когда он вызывается, навсегда. В этом случае мне не совсем понятно, зачем вам вообще нужен аргумент. (Я могу подумать о нескольких причинах, почему, но он не знает, что касается вашего дела, если это действительно ваш случай.) – apsillers

ответ

0

use bind(), чтобы создать функцию с заранее заданными начальными аргументами.

options = { 
    ..., 
    actions:[{ 
     label: 'TheLabel', 
      eventHandler: MyEventHandler.bind(this, MyParameter); 
    }], 
    ... 
}; 
Смежные вопросы