例如,有
function Items(){
}
Items.prototype.getPage = function() {
this.nowPage=$("#pageinfo").attr("nowpage");
};
这样一段程序
items=new Items();
items.getPage();
直接调用 getPage应该不会出错
但是如果下面这段程序
Items.prototype.autoGetItems = function(action,actData) {
$(window).scroll(function () {
this.getPage();
});
};
这样应该会报错,没有getPage这个函数什么的
那在不同情况下调用不是很容易出问题?我应该怎么保证,我要调用的那个就是当前对象的属性,或者方法呢?
nealnote已经给出了正确答案,我来总结一下:
题主给的最后一段代码里面,是函数里面嵌套了函数,外层函数里面的this是“autoGetItems的调用者”,而内层函数中的this是window(这是jQuery决定的)。所以通过一个外部变量将外层的this导入内层即可。
结论就是: