4

現在のChromeでは、これを行うと:

var i = 'foo';
i();

エラーが発生します'string is not a function'iが数値、未定義な​​どの場合、同様のエラーが発生します。

ただし、実際のより複雑なコードでは、別のエラーが表示されることがあります。

'期待される関数: function(){}'

これら 2 つのエラーの違いを正確に把握しようとしています。または、別の見方をすると、「期待される関数」エラーをトリガーする最小限のコード スニップを作成する方法を調べています。

コールバックと呼び出し/適用をいじってみましたが、どれもこれをトリガーしません。誰でもこのエラーを再現する方法を説明できますか?

4

1 に答える 1

0

エラーメッセージがどうあるべきかの仕様はありません。したがって、各ベンダーは独自に実装しています。これを統一する唯一の方法は、自分でデータを検証し、予期したエラーをスローすることです。

var i = 'foo';

if (!$.isFunction(i)){
    throw 'expected function: function(){}';
}
于 2013-05-17T18:58:13.357 に答える