Как вы работаете с длинными переменными в Javascript? - PullRequest
1 голос
/ 28 октября 2010

Как вы рекомендуете работать с длинными переменными в Javascript?Спасибо!

Например ...

window.location.hash.substring(2).split("/")[0].something().hello;

object["object"].object(object.hello.how.are.you[another.object(function.inisde())]);

Мои решения

  • Использование с () { (...) }

Ответы [ 3 ]

3 голосов
/ 28 октября 2010

Я считаю полезным (на любом языке) НЕ объединять вызовы методов в большинстве случаев.Минусы для этого:

1) Если есть какое-то нулевое исключение, трудно знать, где оно происходит, особенно если код выглядит как

if (a.b.c.d.e || f.g.h.i.k) { ... }

, тогда ваш NPEподобное исключение могло произойти в любом из 10 мест.Представьте, что переменные имеют длину более 1 буквы.

2) Таким образом, код менее читабелен.Нижеследующее бесконечно более читабельно.

var b = a.b,
    c = b.c,
    d = c.d,
    e = d.e;
var conditionOne = e.isTrue()

вам не обязательно создавать переменную для каждого уровня, но вы можете это сделать для уровней, которые имеют смысл.

3) Его легчеПосмотрите, что происходит в отладчике, если переменные разделены.

Суть в том, что при некотором дополнительном наборе код становится намного более читабельным и более легким в обслуживании.

3 голосов
/ 28 октября 2010

Если вы собираетесь использовать его более одного раза, обязательно назначьте его другой переменной

var simple = object.hello.how.are.you[another.object(function.inisde())];
1 голос
/ 28 октября 2010

Если вам нужно использовать выражения типа

object["object"].object(object.hello.how.are.you[another.object(function.inisde())]);

это обычно означает, что код плохо спроектирован. :) Обычный способ сделать этот код понятным - использовать переменные. Требуется больше кода, но, по крайней мере, он становится читабельным.

var anotherObject = another.object(function.inisde())
var hello = object.hello.how.are.you[anotherObject];
object["object"].object(hello);

Если выражение линейное, вы можете легко разбить его на несколько строк.

window.location.hash.substring(2)
    .split("/")[0]
    .something().hello;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...