Javascript 如何访问es6类构造函数中单击事件的方法?
我创建了一个类来管理与我的应用程序的主UI交互。在构造器中,我想连接nav li的点击事件。有人能帮我弄清楚如何正确地确定这些对象的范围吗Javascript 如何访问es6类构造函数中单击事件的方法?,javascript,ecmascript-6,Javascript,Ecmascript 6,我创建了一个类来管理与我的应用程序的主UI交互。在构造器中,我想连接nav li的点击事件。有人能帮我弄清楚如何正确地确定这些对象的范围吗 class app { constructor() { $('.nav li').on("click", function() { // I want to call changeView but pass in the data attribute from the li as the view para
class app {
constructor() {
$('.nav li').on("click", function() {
// I want to call changeView but pass in the data attribute from the li as the view param
// ex. changeView($(this).data('view'));
});
}
changeView(view) {
console.log(view);
}
}
我相信如果您使用ES6箭头功能,这将起作用
class app {
constructor() {
$('.nav li').on("click", () => {
// I want to call changeView but pass in the data attribute from the li as the view param
this.changeView($(this).data('view'));
});
}
changeView(view) {
console.log(view);
}
}
我相信如果您使用ES6箭头功能,这将起作用
class app {
constructor() {
$('.nav li').on("click", () => {
// I want to call changeView but pass in the data attribute from the li as the view param
this.changeView($(this).data('view'));
});
}
changeView(view) {
console.log(view);
}
}
使用箭头功能:
$('.nav li').on("click", e => {
this.changeView($(e.target).data('view'));
});
使用箭头功能:
$('.nav li').on("click", e => {
this.changeView($(e.target).data('view'));
});
ES6中的问题与ES5中的问题没有什么不同。问题是相同的,但解决方案是不同的,因为我们有了箭头函数。我们现在有了一个优雅的解决方案来解决“this”范围问题。ES6中的问题与ES5中的问题没有什么不同。问题是相同的,但解决方案不同,因为我们有了箭头函数。我们现在有了一个优雅的解决方案来解决“这个”范围问题。这正是我想要的。谢谢这正是我要找的。谢谢这不起作用,因为没有在任何地方定义
changeView
。这不起作用,因为没有在任何地方定义changeView
。