Подтвердить что ты не робот

TypeError: console.log(...) не является функцией

Я действительно запутался, как я могу получить console.log не является функцией в строке 1091. Если я удалю закрытие ниже, строка 1091 не будет жаловаться на такую ​​ошибку. Chrome версии 43.0.2357.130 (64-разрядная версия).

enter image description here

Вот код:

$scope.columnNameChanged = function (tableColumn) {
    setDirtyColumn(tableColumn);
    //propagate changes to the key fields
    for (var i = 0; i < $scope.tableIndexes.length; ++i) {
        for (var j = 0; j < $scope.tableIndexes[i].columnName.length; ++j) {
            if ($scope.tableIndexes[i].columnName[j] === tableColumn.previousName) {
                console.log('xxx', $scope.tableIndexes[i].columnName[j])
                (function (i, j) {
                    $timeout(function () {
                        console.log($scope.tableIndexes[i].columnName[j])
                        $scope.tableIndexes[i].columnName[j] = tableColumn.name.toUpperCase();
                        console.log($scope.tableIndexes[i].columnName[j])
                    });
                })(i, j);
            }
        }
    }
};
4b9b3361

Ответ 1

Решение

Просто поставьте точку с запятой (;) после console.log(... ).


Описание

Ошибка легко воспроизводится следующим образом:

console.log()
(function(){})

Ответ 2

Ошибка означает, что возвращаемое значение console.log() не является функцией. Вам не хватает точки с запятой:

console.log('xxx', $scope.tableIndexes[i].columnName[j]);
//                                                      ^

который позволяет интерпретировать как интерпретатор функции (...) IIFE как вызов функции.


Сравните сообщения об ошибках

> var foo = {bar: undefined};
> foo.bar();
Uncaught TypeError: foo.bar is not a function

и

> var foo = {bar: function(){}};
> foo.bar()();
Uncaught TypeError: foo.bar(...) is not a function

Ответ 3

Одна из возможных причин может быть объявлением var console где-то в вашем script.

Использование:

window.console.log(...);

вместо этого. Работал для меня.

Я надеюсь, что это поможет

Ответ 4

Есть еще один способ встретить эту ошибку. console.log не является неизменным и можно случайно перезаписать значение.

console.log = 'hi';

В этом случае просто перезагрузите страницу, чтобы отменить повреждение.

Ответ 5

Я знаю, что это не "ответ", но думал, что я бросил бы в следующем

 var console = $( data.message_target );
 console.val( console.val() + data.message); 
 console.scrollTop(console[0].scrollHeight - console.height());

У меня была текстовая область на странице, которую я называл "консоль". внезапно все мои скрипты console.log() выдавали ошибку "Uncaught TypeError: console.log не является функцией в Object"

... и правильно, потому что я использовал зарезервированное пространство имен для моего объекта /var. Я понял, что я сделал после прочтения его поста, и ради потомков: дважды проверь соглашения об именах.

ура

"это всегда человеческая ошибка"

Ответ 6

По крайней мере, вact-native консоль работает без импорта, поэтому удаление import console = require('console'); или import console from 'console'; с самого начала мой файл исправил это для меня. (кажется, что ID Code VS автоматически добавляет это автоматически)