Используя команду $ .proxy в javascript / jquery

0

У меня есть немного кода, который имеет немного внешнего синтаксиса для меня:

$.widget('ui.filterFieldDisplay', $.ui.fieldDisplay, {
setFoo: function() {
  .
  .
  .
  // added the next two lines
  var fooFieldWidgetOptions = fooFieldOptions.widgetOptions;
  fooFieldWidgetOptions['default'] = operator;
  var fooChangeProxy = $.proxy(this.fooChange, this);
  fooFieldWidgetOptions.changeCallback = fooChangeProxy;
}

fooChange: function(fooModel) {
  fooModel.getValue('bar');
  .
  .
  .
}

});

Является ли fooModel в этом случае ссылкой на this указатель?

Я знаю, что метод $.proxy связывает this указатель с функцией, поэтому он работает в этом контексте. Но я знаю, что this не fooModel с fooModel. Поэтому мой вопрос: что такое fooModel и откуда оно fooModel?

  • 0
    я предполагаю , что . Это просто ваш способ сказать, что есть код, который вы пропустили?
  • 0
    Да, . пропущен код ради секретности.
Теги:

1 ответ

1
Лучший ответ

Нет, fooModel будет тем, что было передано как первый параметр для fooFieldWidgetOptions.changeCallback

fooFieldWidgetOptions.changeCallback("helloWorld!"); // fooModel will be 'helloWorld!'

Все $.proxy() сделал убедиться, что this внутри fooChange будет таким же, как this внутренняя setFoo

  • 0
    Поскольку ничего не было передано в fooFieldWidgetOptions.changeCallback , означает fooModel это, что fooModel не undefined ? Это значение по умолчанию?
  • 0
    Если это действительно так, то ничего не передается, да, вы не включили эту часть своего кода в свой вопрос, хотя я не уверен.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню