Ответ 1
Первым аргументом вызова является 'this' функции. Если вы хотите передать переменную в качестве аргумента, начиная со второго.
configs.errorCallback.call(undefined, errors);
Вот документация: Function.prototype.call()
Как передать параметры функции при использовании .call()
в Javascript?
Когда я передаю параметры, они всегда undefined в функции обратного вызова
EDIT (пример):
У меня будет объект options в моем плагине:
var options = {
errorCallback : function( errors ) {}
}
Я буду называть это из своего плагина следующим образом:
var errors = "Test error list";
configs.errorCallback.call(errors);
Я инициализирую свой плагин следующим образом
$('#plugin-element').myPlugin(
{
'errorCallback' : function errorrCallbackFunction( errors ) {
console.log(errors) //always undefined
}
}
Первым аргументом вызова является 'this' функции. Если вы хотите передать переменную в качестве аргумента, начиная со второго.
configs.errorCallback.call(undefined, errors);
Вот документация: Function.prototype.call()
configs.errorCallback.call(errors);
Это необязательно. Вам нужно использовать call
, если вы хотите установить контекст вызова функции. Это означает значение this
в обратном вызове.
Если вы не хотите устанавливать this
, вы можете просто вызвать функцию, как обычно:
configs.errorCallback(errors);
Если вы хотите установить this
, вам нужно установить его как первый параметр в call
. Последующие параметры передаются функции.
Например:
var configs = {
errorCallback : function( errors ) {}
};
configs.errorCallback.call(configs, errors);
Внутри errorCallback
вы можете получить доступ к configs
с помощью ключевого слова this
.