2014-11-07 2 views
0

JQuery предоставляет метод, называемый jQuery.proxy(), который позволяет передавать дополнительные параметры функции, не входящей в исходный вызывающий. Однако в документации не указывается, в каком порядке эти параметры передаются функции приема. Каков порядок получения?Каков порядок дополнительных параметров, переданных в jQuery.proxy?

, например:

function f(a,b,c) { 
    console.log(a,b,c); 
} 

var p = jQuery.proxy(f, null, 1, 2); 
p(3); 

Что бы значения а, Ь и с?

ответ

0

Дополнительные параметры, переданные явно в новой функции, возвращаемой jQuery.proxy(), передаются в качестве параметров вызываемой функции. Любые параметры, переданные вызову проксированной функции, следуют дополнительным параметрам. Так в коде, поставленной в вопросе, полученный результат будет:

1,2,3

Это может показаться бессмысленным вопросом и ответа, но равноценно альтернативное определение может быть, что фактические параметры пришли первые в проксите в результате возможного ответа:

3,1,2

Уход необходимо соблюдать осторожность при использовании прокси-серверов, где вызов проксируемой функции находится вне вашего контроля. Например:

function myHandler(value1, value2, event) { 
... 
} 
$("button").click($.proxy(myHandler, null, "value1", "value2")); 

будет необходим для захвата и обработки параметра event в дополнении к добавленным параметрам.

Смежные вопросы