У меня есть массив объектов, таких как шахматная доска, каждая из которых имеет top
, down
, left
, right
Функция, которая возвращает объект соседа.JS - остановка цепочки объектов без ошибок
data.field(3,3).left() //returns field(2,3);
Я могу приковать его как
data.field(3,3).left().left().top().right().down().getName();
Но нет ни одного объекта с отрицательными шнурами, как
data.field(-1,0)
Его легко обнаружить, когда данные корды отрицательны или больше чем массив объектов. Вы можете вернуть ложный или пустой объект - но когда нет ничего возвращается и сцепление продолжается есть ошибка
Uncaught TypeError: Object #<error> has no method 'down'
Что OFC вещь, но как я могу избежать этой ошибки, и остановить длинную цепь, когда есть нет объекта для возврата без получения ошибки, которая останавливает выполнение js?
Позволяет сказать:
data.left().left()/*here there is nothing to return*/.right().right().getName(); //should return false
Вы хотите, чтобы цепь просто пропустила недействительные вызовы и продолжила цепочку, как будто ничего не произошло? – jbabey
Итак, что бы вы хотели, чтобы вся строка вернулась в конце? Не могли бы вы вернуть «поддельный» объект, который имеет методы, но не данные? –
позволяет сказать, что у меня есть 100 цепочек предметов, которые возвращают false на 10-м шаге. Я хочу, чтобы вся цепочка возвращала false (и по соображениям производительности, что было бы неплохо прекратить выполнение 90 элементов после ложных значений) – OPOPO