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

标签 javascript null literals object-literal member-initialization

我将声明一个文字,如下所示:

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;
  }
}

关于javascript - 在 JS 中使用 null 声明文字成员以便稍后初始化是可行的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28393742/

相关文章:

c# - 为什么这个字符串扩展方法没有抛出异常?

dictionary - swift - 创建空字符串 : tuple dictionary using literal

c++ - 为什么可以将 const char* 分配给 char*?

c - 数组初始值设定项必须是初始值设定项列表或字符串文字 c

javascript - 将鼠标悬停在超链接上时发出 JQuery 警报

javascript - Casperjs 中的 querySelector 返回 null

javascript - ng-include 具有混合值硬编码和范围内的变量

javascript - JavaScript 新手,如何进行 null 检查?

c# - 如何使用 C# 删除 json 中的 NULL?

javascript - Vue 数组的点击事件