我还没有完全理解对象定义和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();