本文へスキップ
BecomeCoder

JavaScriptコース · 第6章 オブジェクト指向と非同期 ― 仕上げ · レッスン23

メソッドを持つオブジェクト

ブラウザで完結

導入

オブジェクトの値には関数も入れられます。オブジェクトに紐づいた関数をメソッドと呼び、this で自分自身のプロパティにアクセスします。

説明

const counter = {
  value: 0,
  inc() {
    this.value += 1;
    return this.value;
  },
  reset() {
    this.value = 0;
  },
};

console.log(counter.inc());  // 1
console.log(counter.inc());  // 2
counter.reset();
console.log(counter.value);  // 0

メソッド記法 inc() { ... }inc: function () { ... } の短縮形です。this はそのオブジェクト自身を指します。

const user = {
  name: "太郎",
  greet() {
    return `こんにちは、${this.name}さん`;
  },
};
console.log(user.greet());

やってみよう

counterdec(1減らす)メソッドを足したり、user の名前を変えたりしてみましょう。

演習

const dog = { name: "ポチ", bark() { return this.name + ": ワン!"; } }; を用意し、bark() の結果を表示してください。

ヒント1を見る

console.log(dog.bark());

実際に動かしてみよう

下のエディタにJavaScriptを書いて「実行」を押すと、ブラウザ内のJavaScriptで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(console.log の結果が下に出ます。input() を使う回は「標準入力」欄に値を入れてから実行します)。

JavaScript — ブラウザ内で実行

ブラウザ本体のJavaScriptで実行する学習用環境を読み込みます(外部エンジン不要・軽量です)。
スクロールして表示された時点でも自動で読み込まれます。