Comments 22
Firefox 37.0.1
+21
IE версии с 9 или 10 пишет более осмысленную ошибку:
+5
Интересно, это было так сложно сделать, что до этого дошли только сейчас? Профит же очевиден.
+8
На всякий случай уточню, что (судя по дате в Твиттере) до изменения в коде Хрома додумались без мáлого два месяца назад, но в тестовых версиях, которые только теперь начинают обретать стабильность и доходить до конечных пользователей.
(Хотя понятно, что «почему не два года назад?» и всё такое.)
(Хотя понятно, что «почему не два года назад?» и всё такое.)
-2
Для смягчения адаптации к новому.
I'm going to write a module for @elmlang that periodically spits "type of undefined is not a function" to the console, because I miss that.
— Kris Jenkins (@krisajenkins) 17 апреля 2015
+5
Круто, конечно, но разве отладчик не показывает номер строки, где произошла ошибка? Не вижу проблемы в том, чтобы перейти на нужную строку и исправить очепятку.
+8
И ещё, имхо, затруднения ошибка может вызвать лишь в первый раз, когда с ней сталкиваешься. А может и не вызвать.
0
UFO just landed and posted this here
Проблемы возникают когда есть желание отловить все ошибки. Вот например есть сборщик JS ошибок в консолях клиентов сайта, доступа к самим консолям нет, в результате в базу данных пишется только строчка ошибки и минимальная доступная информация.
И вот на девелоперской машине все отлично, без ошибок, а от пользователей вал «undefined is not a function».
Именно в этом случае данное улучшение будет полезно.
И вот на девелоперской машине все отлично, без ошибок, а от пользователей вал «undefined is not a function».
Именно в этом случае данное улучшение будет полезно.
+1
Интересно, как себя поведёт в таком случае динамический вызов функции. Знание строки здесь мало поможет, если я не ошибаюсь.
var f1 = function(){console.log('f1');} var a = ['f1','f2']; window[a[0]](); // f1 window[a[1]](); //Uncaught TypeError: undefined is not a function
0
UFO just landed and posted this here
Не всё так радужно.
В старом дебаггере:
В новом дебаггере:
Да, теперь стало чуть лучше от того, что известно, к какому методу пытались обратиться, но вот дальше всё равно нужно внимательно дебажить.
В старом дебаггере:
o = {};
o.n = 3;
o.f() // undefined is not a function
a.n() // number is not a function
В новом дебаггере:
o = {};
o.n = 3;
o.f() // o.f is not a function
a.n() // o.n is not a function
Да, теперь стало чуть лучше от того, что известно, к какому методу пытались обратиться, но вот дальше всё равно нужно внимательно дебажить.
+2
Sign up to leave a comment.
Устранение загадочной ошибки «undefined is not a function» в V8