Javascript 函数指针,以参数作为函数中的参数

2024-05-12

不确定标题的措辞是否正确,或者是否有更好的表达方式,但我认为还可以。

无论如何,到目前为止我了解以下内容:

a.b("a", "b", "c", foo);

其中“foo”是在其他地方定义的函数,不接受任何参数,只会导致函数 a.b() 使用上述参数运行。然后可以在函数 a.b() 中简单地调用参数“foo()”作为“foo()”。换句话说,我理解上面的调用是使用函数指针作为函数 a.b 中的参数作为参数。

好吧,现在这就是我想做的......

我希望能够执行与上述类似的操作,但这次我希望 foo 在该参数中传递一个参数,如下所示:

a.b("a", "b", "c", foo("bar"));

现在问题来了。这实际上会产生参数“a”、“b”、“c”和foo("bar") 的结果正在使用。我不想要这个。我希望 foo("bar") 从字面上传入,以便在函数 a.b 中看起来像这样(作为标题):

a.b(first, second, third, fourth);

可以引用并调用第四个参数:

fourth();

即使“第四”有一个论点。我似乎找不到解决这个问题的方法,有什么建议吗?

Thanks!


使用匿名函数来包装你的foo call.

a.b("a", "b", "c", function() {return foo("bar");});

如果您需要保留this将给出的值,您可以使用调用它.call。您还可以传递给定的任何参数。

a.b("a", "b", "c", function(arg1, arg2) {return foo.call(this, "bar", arg1, arg2);});

当然,该函数不一定需要是匿名的。您也可以使用命名函数。

function bar(arg1, arg2) {
    return foo.call(this, "bar", arg1, arg2);
}
a.b("a", "b", "c", bar);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 函数指针,以参数作为函数中的参数 的相关文章

随机推荐