gpt4 book ai didi

javascript - 类方法调用作为参数存储的另一个类的方法

转载 作者:行者123 更新时间:2023-12-03 06:26:13 24 4
gpt4 key购买 nike

抱歉,标题令人困惑,我不知道如何问这个问题。我有一个关于类和方法的问题。我有一个按钮,按下时会调用另一个对象的功能。对于此示例,它应该将“100”作为 f 的“x”记录到控制台,但相反,它记录“0”:我的按钮的“x”。帮忙?

<script>
function fun(x){
this.x = x;
}

fun.prototype = {
s:function(){
console.log(this.x);
}
}

function Button(func){
this.x = 0;
this.y = 0;
this.w = 1000;
this.h = 1000;
this.func = func;
}

Button.prototype = {
check_if_click:function(x, y){
if (x >= this.x && x <= this.x + this.w && y >= this.y && y <= this.y + this.h){
this.func();
}
}
}

f = new fun(100);
b = new Button(f.s);
b.check_if_click(500, 500);
</script>

最佳答案

如果你想将函数绑定(bind)到某个上下文,可以使用 bind 。它创建一个函数的副本,其中 this 设置为您传递给它的任何内容。

b = new Button(f.s.bind(f));

关于javascript - 类方法调用作为参数存储的另一个类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38646148/

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