【问题标题】:Getter method does not need underscore to reference. Why?Getter 方法不需要下划线来引用。为什么?
【发布时间】:2019-02-03 16:57:27
【问题描述】:

我是对象和方法的新手,我正在创建一个以“_”(下划线)开头的新键值对,以确保它不应该被更改。

我刚刚意识到在创建 getter 方法时不需要使用“_”。

这是为什么呢?

确切地说,我只是在学习 JavaScript 和对象。

const team = {
  _players: [{
    firstName: 'Josh',
    lastName: 'Huan',
    age: 27
  },
  {
    firstName: 'Greg',
    lastName: 'Peterz',
    age: 33
  }
  ],
get players() {
  return this._players;
}

};

我以为我只是使用“_players”作为对 getter 方法的引用,例如“get _players()...”,但我不需要使用下划线。

提前谢谢你们!

【问题讨论】:

  • 下划线和其他字符一样;他们没有什么特别的意思。你有什么问题?
  • 我认为当我创建一个 getter 方法时,我需要引用键的名称(_players)。但正如你所看到的,我并没有使用相同的名称,只是简单地使用没有下划线的“玩家”。问题是:为什么我不需要它?
  • 你基本上是在创建一个全新的方法,它根本不知道_players 甚至存在。如果你愿意,你也可以使用get monkey() { return this._players },它的工作原理是一样的。
  • 谢谢你离开我的草坪。现在一切都清楚了! :)

标签: javascript arrays object get


【解决方案1】:

我在创建 getter 方法时不需要使用“_”。

任何东西都“不需要”下划线。正如您所指出的,下划线标记了不应从外部触及的属性,而是that's just a convention。它仍然是一个普通的属性名称。

需要让您的 getter 工作只是两个不同的属性名称 - 一个用于 getter 属性,一个用于实际存储值的数据属性。您可以为此使用任意两个任意属性名称。

【讨论】:

  • 非常感谢伯吉!我把它误认为是参考,但现在一切都清楚了。 :)
猜你喜欢
  • 2020-06-25
  • 2017-01-30
  • 2022-01-24
  • 2021-03-27
  • 2013-04-30
  • 1970-01-01
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多