首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript参数关键字和多个参数...args

JavaScript参数关键字和多个参数...args
EN

Stack Overflow用户
提问于 2019-06-09 21:45:47
回答 2查看 125关注 0票数 3

我的代码有一些问题。在这里,我将展示我的代码的两个版本,但其中一个无法工作。

使用arguments关键字的代码不起作用:

代码语言:javascript
复制
$(document).ready(function(){
  var data = {
    'one':'b',
    'two':'c',
    'three':'d'
  }
  function func(){
    for(var i=0;i<arguments.length;i++){
      $('.a').each(function(){
        if($(this).hasClass(data[arguments[i]])){
          $(this).css('background','red')
        }
      })
    }
  }
  func('one','two')
})
代码语言:javascript
复制
body{
  margin:0;
  pading:0;
  height:100vh;
}
.a{
  height:50px;
  width:50px;
  background:green;
  margin:20px;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="a"></div>
<div class="a b"></div>
<div class="a c"></div>

但是,当我使用rest参数...val时,一切都运行得很好:

代码语言:javascript
复制
$(document).ready(function() {
  var data = {
    'one': 'b',
    'two': 'c',
    'three': 'd'
  }

  function func(...val) {
    for (var i = 0; i < val.length; i++) {
      $('.a').each(function() {
        if ($(this).hasClass(data[val[i]])) {
          $(this).css('background', 'red')
        }
      })
    }
  }
  func('one', 'two')
})
代码语言:javascript
复制
body {
  margin: 0;
  pading: 0;
  height: 100vh;
}

.a {
  height: 50px;
  width: 50px;
  background: green;
  margin: 20px;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="a"></div>
<div class="a b"></div>
<div class="a c"></div>

如何在不使用...val和仅使用arguments关键字的情况下使此代码完美工作?

EN

回答 2

Stack Overflow用户

发布于 2019-06-09 22:09:50

这是因为“参数”是Javascript中的保留关键字。当你在.each()中的其他函数中调用它时,它的上下文将会改变。它不同于任何其他将原样传递到内部的变量。

如果你想做到这一点,你应该使用箭头函数。

Arrow functions in JS

票数 3
EN

Stack Overflow用户

发布于 2019-06-09 22:14:27

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56515101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档