你如何使用Javascript中的长变量?

时间:2010-10-27 20:57:04

标签: javascript workflow

你如何推荐在Javascript中使用长变量?谢谢!

例如......

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

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

我的解决方案

  • 与(){(...)}
  • 一起使用

3 个答案:

答案 0 :(得分:3)

如果您要多次使用它,请务必将其分配给另一个变量

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

答案 1 :(得分:3)

在大多数情况下,我发现在一起链接方法调用很有用(在任何语言中)。这样做的缺点是

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()

您不一定需要为每个级别创建一个var,但您可以使用有意义的级别。

3)如果变量被分离出来,更容易看到调试器中发生了什么。

最重要的是,通过一些额外的输入,您的代码更易读,更易于维护。

答案 2 :(得分:1)

如果必须使用

之类的表达式
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;