单击时显示 class 属性 值
Showing class property value on click
我需要在单击按钮元素时在控制台中显示 this.name
。
我可以在 clicked()
中替换并设置 console.log(myBtn.name)
但我希望此方法适用于任何对象。
有办法吗?当我点击时,我得到一个空字符串。
谢谢!
class Button {
constructor(name, id) {
this.name = name;
this.ref = document.getElementById(id);
this.init();
}
init() {
this.ref.addEventListener("click", this.clicked);
}
clicked() {
console.log(this.name);
}
}
let myBtn = new Button('My button', "test");
<button id="test">Click me</button>
你快到了
您的代码中的问题在于这在回调中的含义
按下按钮时 this
是按钮,除非您另有说明
class Button {
constructor(name, id) {
this.name = name;
this.ref = document.getElementById(id);
this.init();
}
init() {
this.ref.addEventListener("click", this.clicked.bind(this));
}
clicked() {
console.log(this.name);
}
}
let myBtn = new Button('My button', "test");
<button id="test">Click me</button>
我需要在单击按钮元素时在控制台中显示 this.name
。
我可以在 clicked()
中替换并设置 console.log(myBtn.name)
但我希望此方法适用于任何对象。
有办法吗?当我点击时,我得到一个空字符串。
谢谢!
class Button {
constructor(name, id) {
this.name = name;
this.ref = document.getElementById(id);
this.init();
}
init() {
this.ref.addEventListener("click", this.clicked);
}
clicked() {
console.log(this.name);
}
}
let myBtn = new Button('My button', "test");
<button id="test">Click me</button>
你快到了
您的代码中的问题在于这在回调中的含义
按下按钮时 this
是按钮,除非您另有说明
class Button {
constructor(name, id) {
this.name = name;
this.ref = document.getElementById(id);
this.init();
}
init() {
this.ref.addEventListener("click", this.clicked.bind(this));
}
clicked() {
console.log(this.name);
}
}
let myBtn = new Button('My button', "test");
<button id="test">Click me</button>