我有一些代码对我有一点外国语法:
$.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
是什么,它来自哪里?
答案 0 :(得分:1)
不,fooModel
将作为第一个参数传递给fooFieldWidgetOptions.changeCallback
fooFieldWidgetOptions.changeCallback("helloWorld!"); // fooModel will be `helloWorld!`
所有$.proxy()
确保this
内的fooChange
与this
内的setFoo
相同