[英]Why does this prototypjs observe have a bind on the callback function?
我在一个项目中遇到了这种模式。
$('some_form').observe('keypress', (function(event) {
if (event.keyCode == Event.KEY_RETURN) {
this.some_function()
event.stop();
}
}).bind(this));
我想知道为什么在处理程序上有.bind(this)
。 如果有帮助,这些全部在Class.create()的initialize函数中。 我也想将其转换为jQuery。
没有绑定,范围( this
)将是some_form
元素。 由于some_function
不是form元素的成员,因此您将无法调用它。
通过绑定,范围是包含范围,可以访问some_function
。
这是解决范围问题的另一种模式,该模式甚至可以与超古老的浏览器兼容。
var _this = this;
$('some_form').observe('keypress', (function(event) {
_this.some_function();
}));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.