私はちょうど私がJavaのバックグラウンドを持っている...Javascriptに「安全でない公開」がありますか?
class Team {
constructor(id, eventHandler) {
this.id = id;
this._eventHandler = eventHandler;
this._eventHandler.trigger("NewTeam", this); // my concerning line
}
}
を次のJavaScriptコードを書きました。 Javaでは、コンストラクタ( "安全でない文書")からオブジェクトへの参照を共有することは危険です。これは、オブジェクトが有効な状態になる前に他のスレッドがオブジェクト上で動作する可能性があるためです。
Javascriptでも危険ですか?それは悪い練習とみなされますか?
私は1つの問題のみ考えることができます:Team
を拡張したい場合は、追加のプロパティをeventHandler.trigger("NewTeam",__)
に表示することは難しいでしょう。
JavaScriptはシングルスレッドです。 – Pointy
もちろん、JavaScriptでも参照を共有する前に初期化を完了する必要がありますが、コンストラクタについては何も特別なことはありません。 – Bergi
@Bergi - サブクラスがありますローカル初期化ではコンストラクタに関する考慮事項がありますが、コンストラクタ固有の初期化ではサブクラスを実行できません。 – jfriend00