new演算子
プログラミングでよく見る new という言葉、不思議ですよね。
これは、新しいもの(オブジェクト)を作るための 「型(かた)」から「本物(ほんもの)」を生み出す魔法の言葉 です。
留学生の方には、「たい焼きの型」と「本物のたい焼き」 に例えて説明すると、とてもスッキリ納得してもらえます!
I. new は「実体を作る」もの
プログラミングの世界には、「設計図」 と、その設計図から作られた 「本物」 の2つがあります。
- 型(クラスやコンストラクタ): たい焼きの「鉄板」です。これだけでは食べられません。
newを使って作ったもの(インスタンス): 実際に食べられる「本物のたい焼き」です。
// Date という「時計の設計図」を使って、
// new で「今動いている本物の時計」を新しく作る
const myClock = new Date();
II. なぜ new が必要なの?
例えば、SNSの「ユーザー」というデータを作るとしましょう。
全員の情報をバラバラに作るのは大変ですが、new を使えば同じ形のデータをいくつでも簡単に作れます。
// 1. ユーザーの「設計図(型)」を作る
function User(name) {
this.name = name;
this.sayHi = function() {
console.log("こんにちは、" + this.name + "です!");
};
}
// 2. new を使って、本物のユーザーをどんどん作る
const user1 = new User("マリア");
const user2 = new User("ジョン");
user1.sayHi(); // 「こんにちは、マリアです!」
user2.sayHi(); // 「こんにちは、ジョンです!」
Userはただの設計図です。new User("マリア")と書いた瞬間に、メモリの中に「マリア」という実体 が誕生します。
III. new を使ったときに中で起きていること
留学生に教えるとき、new が裏側でやってくれる「3つの仕事」を伝えると理解が深まります。
- 新しい空(から)の箱 を作る。
- その箱に、名前や中身を コピー して入れる。
- 完成した箱を 「はい、どうぞ!」と渡す(return)。
IV. new を使うもの・使わないもの
ここが一番のポイントです。JavaScriptには2つのパターンがあります。
-
newが必要なもの(重いもの・複雑なもの) -
new Date():日付 -
new User():自分で作った特別な型 -
newがいらないもの(軽くてシンプルなもの) -
"Hello":文字列(String型) -
123:数字(Number型) -
true:真偽値(Boolean型)
Important
留学生へのアドバイス: 「
StringやNumberもnewで作れるけど、基本的には使わないよ。『特別な機能を持った自分だけの道具』を作るときにnewを使う んだよ!」と教えてあげてください。
まとめ
| 言葉 | 意味 | 例え話 |
|---|---|---|
| 設計図(Class) | データの形を決めたもの | たい焼きの型 |
new | 実体を作るためのコマンド | 記事を流し込む動作 |
| 実体(Instance) | new で作られた本物のデータ | 焼きたてのたい焼き |
Tip
「new」のイメージ 英語の「New(新しい)」そのままです。「新しい実体(じったい)を1つ、今ここで生み出すぞ!」という気持ちで使いましょう。
いかがでしょうか?「型から本物を作る魔法の言葉」というイメージは持てましたか?