首页 > 解决方案 > 如何在函数中接收和维护值(javascript)

问题描述

可以说我有这个

anArray.filter(something)
//later
something(argumentno2)    

function something(argument1, argument2) {
    
    //do something with argument 1
    //do something with argument 2
    }

TDLR:需要使用argument2对argument1的结果进行处理

我的问题是我没有按顺序接收参数,因此我的软件似乎出错了,参数 2 特别似乎返回一个数字而不是它的值,并且大多数时候它的值是一个字符串,我没有在我的代码中按顺序接收函数,是否有将argument1分配给第一个插槽,将argument2分配给第二个,或者至少是解决问题的方法,我希望这能稍微澄清一下,我对javascript术语不太熟悉,如果您需要进一步阐述,请提出问题。

标签: javascriptfunctionarguments

解决方案


一个更新,我有一个错误,它同时从全局变量和传递的变量中读取,它可以在您传递或使用全局变量的地方工作,而不是两者,因此我得到未定义的错误。以下只是使用全局变量的解决方案,但我目前只是删除了我正在使用的那个并正常传递它。

我终于设法找到了一个解决方案,尽管它没有解决原来的问题(已解决),我通过简单地不向我的函数传递两个参数而是只传递 1 并将另一个设置为全局变量来解决它,我就是告诉不是一个优雅的解决方案,有两种方法可以做到这一点,您可以在所有函数之外声明全局变量,但这对我来说不起作用,我认为因为 argumentno2 完全来自单独的脚本作为另一个函数的参数所以我使用此命令使其全局化

anArray.filter(something)                  //passes an array to function something, the array is recieved as argument1 one by one
//later
global.usethis_argumentno2 = argumentno2   //makes usethis_argumentno2 a global and sets its value to argumentno2

function something(argument1){             //recieves anArray as argument1
//do something with argument1
//do something with usethis_argumentno2 as its now a global
}

答案来自这里


推荐阅读