こんにちは、Ryuseiです!
今回は、reactを学ぶ前にもう一つ、JavaScriptにおける「クラス」と「関数」について学んできたので備忘録としてまとめておきたいと思います。
これらの理解は、プログラミングを進めていくうえでとても大事な基礎なので、しっかり押さえておきたいです。
関数(Function)
関数は、処理のまとまり」を表すJavaScriptの基本的な仕組みです。
例:名前を受け取って挨拶する関数
function greet(name) {
console.log("Hello, " + name);
}
greet("Taro"); // → Hello, Taro
- ポイント
- 関数の中で定義した変数や処理は、その関数の中でのみ使える(スコープ)。
- 必要な時に
関数名()
で呼び出して使う。
クラス(Class)
クラスは、「データとメソッド(処理)」を1つにまとめた型を作れる仕組みです。
JavaScriptでは ES6から導入 された構文で、実は中身は関数とプロトタイプで動いています。
例:Person
クラス
class Person {
constructor(name) {
this.name = name;
}
greet() {
console.log("Hello, " + this.name);
}
}
const p = new Person("Taro");
p.greet(); // → Hello, Taro
new
キーワードでインスタンス(実体)を作成。this
は、そのインスタンス自体を指す。
this
の使い方に注意!
this
は、その場における「自分自身」を表すキーワードですが、場所によって指すものが変わります。
整理するとこんな感じになります。
使用場所 | this が指すもの |
---|---|
オブジェクトのメソッド内 | そのオブジェクト |
クラスのメソッド内 | そのインスタンス |
通常の関数内(非strictモード) | window (ブラウザの場合) |
アロー関数内 | 外側のスコープの this |
イベントハンドラ | イベント対象要素(例: ボタン) |
this
の退避(that
変数)
通常の関数内で this
を使うと、思ってたのと違うものを参照してしまうことがあります。
そんな時は、this
を that
(または self
)という変数に退避させて使う方法があります。
例
const obj = {
name: "Taro",
greet: function () {
const that = this;
setTimeout(function () {
console.log("Hello, " + that.name);
}, 1000);
}
};
obj.greet();
アロー関数を使えば that
不要!
const obj = {
name: "Taro",
greet: function () {
setTimeout(() => {
console.log("Hello, " + this.name);
}, 1000);
}
};
obj.greet();
まとめ
- 関数は「処理のまとまり」、クラスは「データとメソッドのまとまり」。
this
の動きは場所によって変わるので要注意!- わからなくなったら、
that
で退避 or アロー関数で対応してみよう!
次回は、DOM操作やイベント処理についての内容を復習して、もっと実践的なJavaScriptを書けるようにしていきます。
これからも頑張りますので、よろしくお願いします
-
【第1回】Next.js × Firebaseチャット構想
こんにちは、Ryuseiです! 今回は、自作のNext.jsアプリにチャット機能を組み込むための構想と、試行錯誤のプロセスを振り返ります。 開発の目的 技術構成…
-
Claude Artifactsが進化:誰でもAIアプリを構築・共有できる時代へ
こんにちは、Ryuseiです! 今回は技術の進化がもたらす新しい可能性についての話題です。2025年、Anthropicの生成AI「Claude」に革新的な新機…
-
【Dify旅行記】地元発!個人開発で作る旅行提案チャットアプリのチャットフロー設計
こんにちは。今回は、地元の魅力を発信しながら、旅行の提案をしてくれるチャットアプリをDifyで個人開発した際のチャットフロー設計についてご紹介します。ブロックの…
-
Googleが新たに発表した「A2A」(Agent2Agent)プロトコルとは?
AI時代のインフラとなるか?Googleが仕掛ける“Agent2Agent(A2A)”の衝撃 2025年4月、Googleは異なるAIエージェント同士の通信を可…