在 JS 中使用 null 来声明文字成员以便稍后初始化是可行的做法吗?

Is using null to declare literal members for later initialization a viable praxis in JS?

我将声明一个文字如下:

var obj = {
    x: null,
    init: function (pX) {
        this.x = pX;
    }
};

反对?

我想这样做,因为 x: undefined 等同于根本不声明 x。为以后的初始化声明文字成员时,什么是好的做法?

如果您出于某种原因需要 属性 作为占位符存在,null 是一个很好的值。您可以使用任何与初始化时将包含的值完全不同的值,并且具有可比性。

示例:

var obj = {
  x: null,
  init: function (pX) {
    if (this.x == null) {
      this.x = pX;
    }
  }
}

如果您不需要检查占位符的值(或出于其他一些奇怪的原因),那么您也不需要占位符。通过给它赋值来创建 属性 是完全有效的:

var obj = {
  init: function (pX) {
    this.x = pX;
  }
}