你如何推荐在Javascript中使用长变量?谢谢!
例如......
window.location.hash.substring(2).split("/")[0].something().hello;
object["object"].object(object.hello.how.are.you[another.object(function.inisde())]);
我的解决方案
答案 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;