4

スクリーンショットを見てください...

スクリーンショット

これを実験している理由は、パラメーターが関数であるかどうかを確認する方法について簡単な Google 検索を行ったところ、これを見つけたからです...

var getClass = {}.toString;
...
function isFunctionA(object) {
    return object && getClass.call(object) == '[object Function]';
}

ソース: http://jsperf.com/alternative-isfunction-implementations/4

では、私が入力しているものとサンプル ソース コードの違いは何ですか? だけを入力すると Chrome でエラーが発生する{}.toStringのに、括弧内にあると正常に動作するのはなぜですか?

4

1 に答える 1

4

ステートメントの先頭にある {} があいまいです。空のコード ブロックですか、それともオブジェクトですか? この定義は、コード ブロックとして定義することであいまいさを解決します。ステートメントの先頭で {} をオブジェクトとして使用するには、括弧で囲んで式にします: ({})

オブジェクト リテラルでプロパティに直接アクセスすると SyntaxError がスローされるのはなぜですか? への回答も参照してください。

于 2012-10-08T06:20:26.833 に答える