var name = [];
function logger(names) {
if (typeof names === "string") {
console.log(names);
} else if (typeof names === "object") {
for (var name in names) {
console.log(names.names);
}
}
}
function namesIn(namesData, functionality) {
name.push(namesData);
functionality(namesData);
}
namesIn({
names: ["Michael", "Sally", "Billy", "Dinesh", "Zach"]
}, logger);
Когда я перехожу к просмотру моего журнала в chrome, я приветствую это сообщение об ошибке, которое озадачивает: «TypeError: name.push не является функцией»..push не является функцией
В чем проблема?
Возможный дубликат [Использование переменной «name» не работает с объектом JS] (http://stackoverflow.com/questions/10523701/using-the-variable-name-doesnt-work-with-a -js-object) - переименуйте 'имя' из первой строки вашего кода в другое и измените его в' name.push' соответственно. – Xufox
Это связано с переменной с именем «имя», которая объявляется глобальной переменной. 'name' является ограниченным свойством объекта' window', который возвращает имя 'window'. Отсюда и ошибка. См. Вопрос, связанный как дубликат для лучшего объяснения. –