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')
})