有一个带有构造函数和类方法的类。该方法声明了一个在单击按钮时执行的函数。问题是在这个函数内部,构造函数中声明的类对象是不可见的。如何解决这个问题?
class user {
constructor(name) {
this.name = name;
}
sayName() {
const button = document.getElementById('btn');
button.onclick = function() {
alert(this.name); //Значение this.name не определено в пределах данной функции
};
}
}
let user1 = new user('John');
user1.sayName(); //Ничего не выведет, т.к. значение this.name не определено в функции, объявленной внутри метода sayName()
有必要确保 this.name 在整个类中可见,包括。并在其中声明的所有函数中。也许您可以创建一个全局类变量以便您可以使用它或一些指针?
您需要阅读和箭头函数之间的区别
function作为上下文