在javascript / jquery中使用$ .proxy命令

时间:2014-04-15 21:11:47

标签: javascript jquery

我有一些代码对我有一点外国语法:

$.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是什么,它来自哪里?

1 个答案:

答案 0 :(得分:1)

不,fooModel将作为第一个参数传递给fooFieldWidgetOptions.changeCallback

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

所有$.proxy()确保this内的fooChangethis内的setFoo相同