Javascript原型和jQuery

时间:2015-10-24 14:05:16

标签: javascript jquery

考虑这个例子:

wofForm = function( $form ) {
  this.form   = $form;
  this.select = this.form.find(".sm-product-select");
  this.productChange();
}
wofForm.prototype.productChange = function() {
  this.select.on("change", **this.checkIfVariableProduct** )
}
wofForm.prototype.checkIfVariableProduct = function() {
  console.log("searching ", this );
}    

为什么当我传递this.checkIfVariableProduct内部产品时,它实际上传递了选择对象而不是wofForm实例?我想进一步传递wofForm实例,而不是select的jQuery对象。

1 个答案:

答案 0 :(得分:3)

处理程序的this值由jQuery的on方法设置。 “当jQuery调用处理程序时,this关键字是对传递事件的元素的引用。”要手动设置this值,您可以使用Function.prototype.bind$.proxy方法。

 this.select.on("change", this.checkIfVariableProduct.bind(this) );