-1

次のように始まるクラスがあります。

function event()
{
    this.event_id = null;

そして、すべてに init 関数が取り込まれます。

スクリプトの別の部分では、これらの変数にアクセスできません。

このコードを実行すると:

    console.log(my_event);
    console.log(my_event.event_id);

最初の行では、コンソールに event_id が入力されたイベント オブジェクトの適切な表現が表示されますが、2 行目では null が表示されます。

どうしたの?変数は公開する必要がありますか?

助けてくれてありがとう。

4

1 に答える 1

2

オブジェクトなどの非スカラー値の場合console.log、実際の状態は、Chrome 開発者ツール コンソールでオブジェクトのプロパティを表示するために展開したときにのみ取得されます。100 個未満のアイテムの短い配列または配列のようなものは自動的に展開されますが、その場合、状態は通常 (私のテスト結果はこれによって異なります。おそらく私は単に見ているだけです) すぐには取得されません。

したがって、から取得nullした場合console.log(my_event.event_id);、実際には実行さnullれた時点でした。console.logの結果はconsole.log(my_event);、ログに記録されたオブジェクトをコンソールで展開するときによって異なります。プロパティを変更する ajax リクエストを行い、event_idコンソールでオブジェクトを展開するまでにリクエストが完了した場合、変更された値が表示されます。

また、JavaScript のすべてのオブジェクト プロパティは「public」です。

于 2012-07-27T11:25:58.403 に答える