次のクラスがあったとします。

class Staff {
  constructor(name, address, department) {
    this.name = name
    this.address = address
    this.department = department
  }

  getAddress() {
    return this._address
  }

  message() {
    console.log(`${this.name}さんは、${this.department}所属です。`)
  }
}

address は、外部で呼び出してほしくないのでプライベートだということを、開発者に知らせたいとします。

その場合、プロパティ名の前にアンダースコア『_』を追加します。

this.addressの address の前に『_』を追加してみましょう。

class Staff {
  constructor(name, address, department) {
    this.name = name
    this._address = address
    this.department = department
  }

  getAddress() {
    return this._address
  }

  message() {
    console.log(`${this.name}さんは、${this.department}所属です。`)
  }
}

ただし、これは開発者に注意をするためであって、実際には呼び出すことができます。

const tanaka = new Staff("田中", "埼玉県", "営業部")

console.log(tanaka.getAddress())

確認すると、

image2

address は呼び出されました。

ブログ一覧