Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript arguments关键字和多个参数…args_Javascript_Jquery - Fatal编程技术网

JavaScript arguments关键字和多个参数…args

JavaScript arguments关键字和多个参数…args,javascript,jquery,Javascript,Jquery,我的代码有一些问题。这里我将展示我的代码的两个版本,但其中一个不起作用 使用arguments关键字的此代码无效: $(文档).ready(函数(){ 风险值数据={ “一”:“b”, “两个”:“c”, “三”:“d” } 函数func(){ 对于(var i=0;i这是因为“arguments”在Javascript中是一个保留关键字。当您在.each()中的其他函数中调用它时,它的上下文将发生变化。它与在内部传递的任何其他变量不同 如果要实现这一点,应使用箭头功能。 希望问题已经解决。您

我的代码有一些问题。这里我将展示我的代码的两个版本,但其中一个不起作用

使用
arguments
关键字的此代码无效:
$(文档).ready(函数(){
风险值数据={
“一”:“b”,
“两个”:“c”,
“三”:“d”
}
函数func(){

对于(var i=0;i这是因为“arguments”在Javascript中是一个保留关键字。当您在
.each()
中的其他函数中调用它时,它的上下文将发生变化。它与在内部传递的任何其他变量不同

如果要实现这一点,应使用箭头功能。


希望问题已经解决。

您需要使用输入参数(
…val
)。
每次调用方法时,都会在其中传递一个新参数。

除此之外,还有两种可能的方法:

  • 使用箭头函数,使参数范围仍链接到外部 功能
  • 如果你想保留这个函数,你可以每次把这个值作为一个参数传递,但这只是浪费了计算能力

尝试在func()中使用本地变量:

$(文档).ready(函数(){
风险值数据={
“一”:“b”,
“两个”:“c”,
“三”:“d”
}
函数func(){

对于(var i=0;它的
参数
对象在每次函数调用时都会获得一个新值,包括传递给
.each()
的函数。内部
参数
的值与外部的值不同。如果对
.each()使用
=>
函数
callback,它会起作用,因为这类函数在这方面的工作方式不同。根据我的问题,我实际上不想使用…val,我在寻求一些替代方案
    $(document).ready(function(){
      var data = {
        'one':'b',
        'two':'c',
        'three':'d'
      }
      function func(){
        for(var i=0;i<arguments.length;i++){
          var key = arguments[i]
          $('.a').each(function(){
            if($(this).hasClass(data[key])){
              $(this).css('background','red')
            }
          })
        }
      }
      func('one','two')
    })