Javascript 什么是有效的[].forEach.call函数参数?
什么是有效的Javascript 什么是有效的[].forEach.call函数参数?,javascript,html,Javascript,Html,什么是有效的[].forEach.call函数参数?在下面的代码中,el似乎是一个节点列表或节点列表的一个元素 [].forEach.call( document.getElementById('menu').querySelectorAll('.custom-can-transform'), function(el){ el.classList.toggle('pure-menu-horizontal'); } ); ) 许多
[].forEach.call
函数参数?在下面的代码中,el
似乎是一个节点列表
或节点列表的一个元素
[].forEach.call(
document.getElementById('menu').querySelectorAll('.custom-can-transform'),
function(el){
el.classList.toggle('pure-menu-horizontal');
}
);
)
许多数组方法在设计上是通用的。这意味着它们的内部实现不依赖于
这个成为数组实例。基本上,这种实现只需要该对象具有数字索引和length
属性。这种对象称为“类似阵列的对象”
有许多对象符合此要求。例如,您观察到的节点列表为document.getElementById('menu')。querySelectorAll
。这是一个类似数组的对象,因为您可以通过索引访问各个节点,并且这样的节点列表具有length
属性
任何字符串也是类似数组的对象。例如,字符串“hello world”。您可以通过str[t]
访问字符“w”。并且str.length
等于11
数值索引和length
属性的要求允许方法实现遍历集合的所有单个元素,而不需要知道该集合实际上是什么
它还可以在不同的对象上使用通用方法:
const obj={0:'1',1:'2',长度:2};
Array.prototype.forEach.call(obj,(el,index)=>{
log(`${index}:${el}`)
})
用函数的第一个参数替换函数的这个
变量,然后用所有剩余参数调用函数,这些参数都赋给.call()
这意味着上述代码的计算结果如下:
document.getElementById('menu').querySelectorAll('.custom-can-transform').forEach(function(el){
el.classList.toggle('pure-menu-horizontal');
});
请注意,不使用.call()
方法的forEach
的这个变量将是[]
,因为它是forEach
调用的前缀
关于数组上的forEach
的参数是什么
它只接受2个参数。第一个参数是为数组的每个元素调用的函数callback
。第二个(可选)参数用于将此
变量注入回调方法的函数体 你想在这里实现什么?你知道NodeList有一个forEach方法,对吗“forEach函数故意是泛型的;它不要求其此值是数组对象。因此,它可以被转移到其他类型的对象中用作方法。forEach函数是否可以成功应用于主机对象取决于实现。”@evolutionxbox-仅限于更有限的浏览器support@Quentin哦,是吗?我不知道