Глядя на this code, в функции прототипа onDiagram
линии 30 мы имеем:Scope примерочных объявленная переменная
proto.onDiagram = function (message, address) {
message = this.arrayBufferToString(message);
try {
var obj = JSON.parse(message);
} catch (e) {
return;
}
if (!obj) {
return;
}
switch (obj.type) {
...
не obj
бы быть локальными try
здесь? Ожидается ли код быть:
var obj;
try {
obj = JSON.parse(message);
} catch (e) {
...
В JavaScript объем переменных, объявленных в функциях, обычно представляет собой целую функцию. Некоторые браузеры поддерживают декларацию 'let', которая еще больше ограничит область. – kviiri