gpt4 book ai didi

javascript - 将类函数作为参数传递给另一个类以用作 JavaScript 中的回调

转载 作者:行者123 更新时间:2023-12-05 01:32:35 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to access the correct `this` inside a callback

(13 个回答)


7年前关闭。




好的,所以我有两个类。
类 1 包含一个特定的函数,它可以访问该类的某些属性。这是它的样子:

function class1() {
this.variable = "something";
}

class1.prototype.callback = function() {
console.log(this.variable); // Returns undefined
}

类 2 可以调用给定的任何函数,如下所示:
function class2() {}

class2.prototype.caller = function(callback) {
callback();
}

然后在我的常规 Javascript 中,我这样做:
var c1 = new class1();
var c2 = new class2();
c2.caller(c1.callback);

它应该返回“某物”,但它会引发未定义的错误。我知道这是因为它在 class2 的范围内并且它试图访问那里的变量,但是我不知道如何让它在 class1 的范围内执行。

任何帮助是极大的赞赏!

最佳答案

使用.bind()或包装函数:

c2.caller(c1.callback.bind(c1));

请注意,您的代码是错误的,因为它在传入返回值之前调用了该函数。

或者:
c2.caller(function() { c1.callback(); });

关于javascript - 将类函数作为参数传递给另一个类以用作 JavaScript 中的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27232157/

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