0

したがって、これはより一般的な質問です。これとそれがこのエラーを返す理由について何百もの質問がありますが、この種の問題をより迅速に解決するために、より深く理解したいと思います. または、何か新しいことを学ぶだけです。誰かが説明への参照を見つけることができれば、喜んで質問を閉じますが、私はそれを見つけることができませんでした.

  1. 欠けているものは何ですか?
  2. エラーをスローするのはブラウザの JavaScript コンパイラですか、それとも jQuery ですか?
  3. オブジェクト[オブジェクトオブジェクト]とは何ですか?
4

2 に答える 2

3

欠けているものは何ですか?

存在しないオブジェクトのメソッドを呼び出そうとしています。例えば:

var foo = {};
foo.bar();

プロパティが存在するが関数ではない場合、次のようなエラーが発生します。

TypeError: Property 'bar' of object #<Object> is not a function

注:ブラウザーによって異なるエラー メッセージが表示されます。これは Chrome のものです。


エラーをスローするのはブラウザの JavaScript コンパイラですか、それとも jQuery ですか?

これは JavaScript ランタイム エンジンです。jQueryとは関係ありません。


オブジェクト[オブジェクトオブジェクト]とは何ですか?

[object Object]オブジェクトのデフォルトの文字列表現です。試す:

alert({});

toStringメソッドを実装して上書きします。

var foo = {
    toString: function() {
        return "I'm a boring object.";
    }
};
alert(foo);
于 2013-01-16T17:29:23.903 に答える
0

[object Object] は、オブジェクトのデフォルトの toString メソッドによって返されるものです。このエラーが表示された場合は、その名前のプロパティを持たず、toString メソッドがオーバーライドされていないオブジェクトのメソッドを呼び出そうとしていることを意味します。

このメッセージが表示された場合は、firebug またはその他のデバッグ ツールを使用して発生している行を確認し、メッセージ内の「メソッド」の後に来るプロパティ名が呼び出し元のオブジェクトに存在しない理由を理解する必要があります。

jQueryとは特に関係ありません。オブジェクトにプロパティが存在しない場合にスローされるデフォルトのエラーです。

于 2013-01-16T17:30:19.410 に答える