紧凑型公约

时间:2012-01-19 23:50:56

标签: javascript coding-style convention

如果每个方法和变量只使用一次,这是更正确的惯例吗?

根据需要创建尽可能多的变量:

var x = GmailApp.getInboxUnreadCount();
var email = GmailApp.getInboxThreads (0, x);

在一行中编写代码:

var email = GmailApp.getInboxThreads (0, GmailApp.getInboxUnreadCount());

2 个答案:

答案 0 :(得分:3)

后者,在合理范围内。但在很简单的情况下,这主要是风格问题。

这意味着如果你有一个带有10个参数的函数调用,并且每个参数都来自一个大函数调用本身,那就不要这样做。想想之后谁将获得您的代码库。

“使用较少的局部变量可以读取这行代码吗?或者我是否需要将其拆分以更好地说明该行正在做什么?”是你应该问自己的问题。在这种情况下,后者完全可读。


事实上,我认为第一个例子由于无用的局部变量名x而不太可读。如果相反,它被命名为更好,它可能是一个更可行的选择。

var unreadCount = GmailApp.getInboxUnreadCount();
var email = GmailApp.getInboxThreads (0, unreadCount);

这更好,但在这个非常简单的情况下仍然是非常不必要的。

答案 1 :(得分:1)

这是一种权衡。

第一个示例更易于阅读和调试。它有2行可能发生错误。对于调试,这很好,因为每行只调用一个函数。

第二个例子被称为“一个班轮”并且调试起来很棘手,因为有很多事情可能导致该行的错误,但使用的内存较少。虽然可能是微不足道的数额。

在此示例中,

1. var unread = GmailApp.getInboxUnreadCount();
2. var email = GmailApp.getInboxThreads (0, unread);

假设您在第2行收到错误。您知道getInboxThreads正在抛出错误。

1. var email = GmailApp.getInboxThreads (0, GmailApp.getInboxUnreadCount());

现在说你在第1行遇到错误。你必须检查这两种方法。