在Javascript事件处理程序中访问父函数的变量

时间:2011-06-27 09:16:18

标签: javascript javascript-events scope closures

我有一个绑定到'change'事件的事件处理程序。问题是,该函数中的函数无法访问父函数的任何元素

Process.prototype.handleCheckboxChange = function(event) {
    var rgbs = []
    $(':checked').each(function(index,element) {
       var color = [0,3,4];
       rgbs.push(color);
    })
}

我一直在阅读关于闭包的所有地方,但我看到的所有内容似乎都表明内部函数应该能够访问其父项局部变量,而这不是这里的情况:rgbs是未定义。

可能有用的是知道绑定时(使用jQuery的bind())我使用闭包将this关键字设置为原始对象(以我不太懂的方式),尽管问题是当我不这样做时:

Process.prototype.doBinding = function() {
   $('checkbox').bind('change', function(event) {self.handleCheckboxChange(event)})
}

关于我做错了什么以及如何访问rgbs的任何想法?

0 个答案:

没有答案