提问人:IGCagn 提问时间:4/29/2022 最后编辑:IGCagn 更新时间:4/29/2022 访问量:74
单击时显示类属性值
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>
答:
2赞
R4ncid
4/29/2022
#1
你快到了
代码中的问题是这在回调中的含义
按下按钮时是按钮,除非您另有说明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>
评论
1赞
4/29/2022
在发布答案之前,请检查是否有重复项。2015 年之后发布的任何 JS 问题都是重复的。
0赞
R4ncid
4/29/2022
2015 年之后@ChrisG所有 JS 问题吗?:)
1赞
4/29/2022
好吧,其中 99,99% ;)在这里花几个月的时间(JS 标签),一遍又一遍地重复同样的 30 个问题。我是认真的。
评论
this
myBtn
this.ref.addEventListener("click", () => this.clicked());