0

私はOPCを読んで、連鎖とそれを自分で行う方法について学ぼうとしています。私はまだ非常に立ち往生しています。これを学んでいる間、私は眉を上げる少しのエラー処理に遭遇しました。インデントから、4行目は2行目から始まるifステートメントの一部ではないようです。2行のifステートメントは中括弧を必要とせず、インタプリタは中括弧がないため、ifステートメントの直前の行のみが同じifステートメントの一部です。したがって、4行目は次のブロックの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 ブロックにありません。

中かっこがないと、直後の次のステートメントのみがifif ブロックになります。

于 2012-08-02T07:58:03.340 に答える