Javascript 在函数中传递参数,该参数通过;参考资料;在另一个功能中

Javascript 在函数中传递参数,该参数通过;参考资料;在另一个功能中,javascript,function,pass-by-reference,Javascript,Function,Pass By Reference,好吧,这有点难以解释,但我来这里是为了证明我正在努力实现的目标 我认为这与我的场景有关,但我没有弄清楚如何将本文中提到的方法应用到我的场景中 我有三个功能 职能1。一个传递给func2并由func2调用一次的函数 func2已经完成了它的业务 职能2。作为参数接收函数的函数(func1) 它要打电话了 职能3。调用func2的函数 我想向func3传递一个参数,该参数在func2中传递给func1 例: func3=函数(aBool){ 职能2(职能1); } //我希望能够将参数传递给函

好吧,这有点难以解释,但我来这里是为了证明我正在努力实现的目标

我认为这与我的场景有关,但我没有弄清楚如何将本文中提到的方法应用到我的场景中

我有三个功能

  • 职能1。一个传递给func2并由func2调用一次的函数 func2已经完成了它的业务
  • 职能2。作为参数接收函数的函数(func1) 它要打电话了
  • 职能3。调用func2的函数
我想向func3传递一个参数,该参数在func2中传递给func1

例:


func3=函数(aBool){
职能2(职能1);
}
//我希望能够将参数传递给函数
//它在func2中被调用
func3a=函数(aBool){
func2(func1(aBool));
}
func1=函数(数据,myBool){
警报(数据[0]+''+myBool);
}
//无法更改此功能
func2=函数(func){
var数据=[];
数据[0]=“你好,世界”
func(数据);
}

您可以使用内联函数包装传递给
func2
的函数。然后将调用委托给
func1
,传递附加参数

例如:


您可以使用内联函数包装传递给
func2
的函数。然后将调用委托给
func1
,传递附加参数

例如:

您不仅可以使用绑定函数在其中执行的上下文(
this
),还可以使用绑定函数调用的第一个参数

func3 = function (aBool) {
    func2(func1.bind(null,aBool));
}


func1 = function(myBool, data) {
    alert(data[0] + ' ' + myBool);
}
请注意,我必须更改func1的签名,才能将布尔值作为第一个参数,以便func2在调用它时可以设置第二个参数

bind
的实现与Yoshi在实践中的回答类似。请注意,他的回答没有对参数的顺序施加任何限制。

您不仅可以使用绑定函数在其中执行的上下文(
this
),还可以使用绑定函数调用的第一个参数

func3 = function (aBool) {
    func2(func1.bind(null,aBool));
}


func1 = function(myBool, data) {
    alert(data[0] + ' ' + myBool);
}
请注意,我必须更改func1的签名,才能将布尔值作为第一个参数,以便func2在调用它时可以设置第二个参数


bind
的实现与Yoshi在实践中的回答类似。请注意,他的回答没有对参数的顺序施加任何限制。

谢谢,这在我的示例和实际代码中都有效。最近我一直在youtube上看Crockford的一些视频,我知道我在什么地方看到过这段视频。只是我没有把手指放在上面。谢谢,这在我的示例和实际代码中都有效。最近我一直在youtube上看Crockford的一些视频,我知道我在什么地方看到过这段视频。我只是没有把我的手指放在上面。谢谢,我也会研究你的答案,我想了解这是如何工作的。虽然,这可能更难实现,因为我的实际代码有更多的参数。我只是想在这里发布这篇文章,因为bind完全是为部分函数应用程序设计的。它更有限,但也更容易写,所以你应该在合适的时候使用它。谢谢,我也会研究你的答案,我想了解它是如何工作的。虽然,这可能更难实现,因为我的实际代码有更多的参数。我只是想在这里发布这篇文章,因为bind完全是为部分函数应用程序设计的。它更有限,但也更容易编写,所以您应该在合适的时候使用它。
func3 = function (aBool) {
    func2(func1.bind(null,aBool));
}


func1 = function(myBool, data) {
    alert(data[0] + ' ' + myBool);
}