0

我正在尝试通过阅读 OPC 来了解链接以及如何自己做。我仍然很困。在学习这一点时,我遇到了一些让我大吃一惊的错误处理。从缩进来看,第 4 行似乎不是从第 2 行开始的 if 语句的一部分。我是否正确假设 2 行 if 语句不需要花括号,并且解释器假设当有缺少花括号,只有直接进行 if 语句的行是同一 if 语句的一部分;因此,第四行不是以下块中 if 语句的一部分:

    set: function (mystr, func) {
        if (!this[mystr])
            throw new Error("unknown hook " + mystr);
        this[mystr] = func;
    },
4

3 回答 3

3

它通常不是该,而是if 语句之后的语句被认为属于它

于 2012-08-02T07:56:18.270 回答
2

仅当块内有多个语句时才需要花括号。如果不使用大括号,则下一条语句(单个)将在块内,以下语句将在块外。

if (something)
    StatementIfTrue();
StatementEitherWay();

if (something)
{
    StatementIfTrue1();
    StatementIfTrue2();
}
StatementEitherWay();

if (something) StatementIfTrue(); StatementEitherWay();
于 2012-08-02T07:56:34.367 回答
1

是的,第 4 行不在 if 块中。

没有大括号,只有紧随其后的下一条语句if将在 if 块中。

于 2012-08-02T07:58:03.340 回答