gpt4 book ai didi

javascript - 如何从按钮调用 Javascript 中的方法(使用此方法)?

转载 作者:行者123 更新时间:2023-12-02 15:47:30 25 4
gpt4 key购买 nike

在 JavaScript 中从按钮调用函数很容易:

b.onclick = f;

也可以从按钮调用方法:

Myclass.prototype.m = function() {
var t = this;
b.onclick = t.f;
}

但是我们想通过另一个函数从按钮调用我们类的方法。有没有办法在不传递原始对象的情况下做到这一点?

这是不起作用的代码。 this.e 在按钮的上下文中解释。

<!DOCTYPE html>
<html>
<body>
</body>
<script>
function A() {}
A.prototype.e = function() {
console.log("bar");
}

A.prototype.f = function() {
console.log("foo!");
this.e();
}

A.prototype.g = function() {
var b = document.createElement("button");
b.innerHTML = "say foo!";
b.onclick = this.f;
document.getElementsByTagName("body")[0].appendChild(b);
}

var a = new A();
a.g();

</script>
</html>

最佳答案

使用Function.prototype.bindthis 关键字的上下文更改为您的 a 实例

<!DOCTYPE html>
<html>
<body>
</body>
<script>
function A() {}
A.prototype.e = function() {
console.log("bar");
}

A.prototype.f = function() {
console.log("foo!");
this.e();
}

A.prototype.g = function() {
var b = document.createElement("button");
b.innerHTML = "say foo!";
b.onclick = this.f.bind(this);
document.getElementsByTagName("body")[0].appendChild(b);
}

var a = new A();
a.g();

</script>
</html>

关于javascript - 如何从按钮调用 Javascript 中的方法(使用此方法)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32080370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com