私はまだthis
、JavaScript のオブジェクト定義とスコープについて十分に理解していません。以下の (c#ish) 疑似コードは、それを非常にうまくまとめていると思います。
次のすべてのプロパティを持つオブジェクトを作成する JavaScript コードを定義するにはどうすればよいですか。
- オブジェクトのメソッド内でのみ表示されるプライベート メンバー
- オブジェクトの外でも見えるパブリックメンバー
- オブジェクトがインスタンス化され、メンバーが初期化されるときに実行される (パラメーター化された) コンストラクター
- オブジェクト自体のメソッドを指すオブジェクト内のコールバックを登録します
- メソッド内でコールバックが実行されると (
PrivateMethod
)、できればthis
ポインタを使用して、オブジェクト インスタンスのすべてのメンバーにアクセスできます。
.
class MyObjectDefinition
{
public int publicField = 0;
private int privateField;
public MyObjectDefinition(int parameter)
{
this.privateField = parameter;
SomethingThatWantsA.CallBack(this.PrivateMethod);
}
public void PublicMethod()
{
this.privateField--;
this.publicField--;
}
private void PrivateMethod()
{
this.privateField++;
this.publicField++;
}
}
var instance = new MyObjectDefinition();