我在JavaScript中有我的OOP功能,我使用带回调的库。
代码如下:
$('body').mCustomScrollbar({
theme: 'minimal',
callbacks: {
whileScrolling: function() {
console.log(this.mcs.draggerTop);
}
}
});
内部回调函数(whileScrolling)我有this.mcs(由库制作)。但我无法访问我的OOP函数变量。 如果我想访问它们,我必须这样做
whileScrolling: function() {
console.log(this.mcs.draggerTop);
}.bind(this);
如果我这样做,我可以通过它访问所有人。变量(在OOP函数上),但是我在内部回调中放弃了旧变量,所以我不再使用this.mcs.draggedTop。
有没有办法合并"这个(前一个+新的一个)?
答案 0 :(得分:3)
将外部this
的值分配给变量并在回调中使用该变量:
var outerThis = this; // the outer this
$('body').mCustomScrollbar({
theme: 'minimal',
callbacks: {
whileScrolling: function() {
// here this is the inner this
// and outerThis is the outer this
console.log(this.mcs.draggerTop);
}
}
});
答案 1 :(得分:2)
尝试
$('body').mCustomScrollbar({
theme: 'minimal',
self:this,
callbacks: {
whileScrolling: function() {
console.log(self.localVariable);
}
}
})