gpt4 book ai didi

javascript - 有没有办法将变量传递给回调函数而不用将其包装在另一个函数中?

转载 作者:行者123 更新时间:2023-11-30 16:52:35 25 4
gpt4 key购买 nike

我希望我问的是正确的。

我有 jQuery 行:

$("main").load("link.html", runFunction);

而且效果很好。但是现在我想将一个变量传递给函数runFunction,但是做

$("main").load("link.html", runFunction(myvar));

不起作用,因为它会立即被调用。我知道我能做到

$("main").load("link.html", function() {runFunction(myvar)});

但我想知道是否有任何其他方法可以在没有额外包装函数的情况下将变量发送到 runFunction。

最佳答案

在幕后,创建一个新函数是不可避免的,因为您传入的“绑定(bind)”参数绑定(bind)到某个范围,并且您将调用的函数将在不同 范围。为此,您需要一个闭包,您可以使用内联匿名函数创建它。

也就是说,JavaScript 通过 Function.prototype.bind 调用使这更容易。查看bind() on MDN .

bind 允许您创建leading 绑定(bind)参数(即,您不能使用它来将 second 参数绑定(bind)到变量,但不能首先)。

$("main").load("link.html", function() {runFunction(myvar)});

成为

$("main").load("link.html", runFunction.bind(window, myvar)});

请注意,您传递给 bind 的第一个参数是 thisArg,它是将与 this 参数关联的 JavaScript 对象在函数体中。

关于javascript - 有没有办法将变量传递给回调函数而不用将其包装在另一个函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30290456/

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