Вы скрываете значение своей глобальной константы, определяя параметр в функции с тем же именем:
const cards = ...;
function flipBack (cards) {
// The following print statement will print the
// value of the parameter, not the global constant
console.log(cards);
}
Кроме того, когда вы вызываете flipBack
в другой функции, вы вызываете ее безПередача любых параметров, в результате чего значение параметра cards
будет неопределенным.
Вы можете устранить проблему, просто удалив cards
из списка параметров вашей функции:
function flipBack () {
// ...
}
Что касается того, почему код говорит, что cards
не повторяется, cards
будет HTMLCollection
.В то время как большинство современных браузеров будут поддерживать итерации такого типа объектов с for/in
, эта функциональность не гарантируется, и вам все равно не следует делать это .Более безопасный подход - использовать цикл for:
function flipBack () {
for (var i = 0; i < cards.length; i++) {
var card = cards[i];
// ...
}
}