请考虑以下代码。在点击回调中,我尝试访问color
的{{1}} css属性。同时,我需要调用私有方法this
,这只能通过使用setResponsiveClass
来实现。该代码显然不会编译,因为this.setResponsiveClass
的作用域是事件处理程序。
this
此answer提供了实现事件范围(通过保留当前代码)或类范围(通过转换为粗箭头语法)的方法。
如何在同一函数中从事件范围和私有方法访问class SomeClass {
constructor {
$('.someclass').on('click', function() {
var color = $(this).css('color');
console.log(color);
this.setResponsiveClass();
});
}
private setResponsiveClass() {
console.log('hello')
}
}
?
答案 0 :(得分:1)
您可以通过这种方式触发
class SomeClass {
constructor {
$('.someclass').on('click', = () => {
var color = $(this).css('color');
console.log(color);
this.setResponsiveClass();
});
}
private setResponsiveClass() {
console.log('hello')
}
}
class SomeClass {
constructor {
var self = this; <====
$('.someclass').on('click', function() {
var color = $(this).css('color');
console.log(color);
self.setResponsiveClass(); <====
});
}
private setResponsiveClass() {
console.log('hello')
}
}
我希望这对您有帮助