0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

javascript 復習 プロトタイプパターン

Posted at

私の理解のためにとてもざっくりとプロトタイプパターンについてまとめました。

プロトタイプ

プロトタイプとは、javascriptのオブジェクトが内部的に参照している親オブジェクトのこと。

プロトタイプパターンとは

複数の同じ型のオブジェクトの間でプロパティを共有するために、既存のオブジェクト(プロトタイプ)を元にして、新しいオブジェクトをコピーすることで生成する設計パターン。

コード例

const person = {
  greet() {
    console.log(`Hello, I'm ${this.name}`);
  }
};

const user = Object.create(person);
user.name = "popfly";

user.greet(); // Hello, I'm popfly


userは、personをコピーしているのではなく、親として参照しています。

仕組み

javascriptでは、オブジェクトがプロパティを探す時、

  1. 自分の中を探す
  2. 自分の中にない時はプロトタイプを見る
  3. その中にもない時は、さらにそのプロトタイプを見る
    という構造になっており、これを プロトチェーン と呼ぶ。

プロトタイプ(prototype)プロパティとは?

関数オブジェクトだけが最初から持っているプロパティ。
その関数から生まれるインスタンスに共有させるデータ置き場のような役割。
→子インスタンスが、自分にない機能を親に借り行くための、親が持っている共有倉庫ですね。

メリット

  1. メモリの節約
    2. コード再利用

__proto__について

javascriptのオブジェクトが内部に持っている隠しプロパティ。
自分が持っていない機能(メソッドやプロパティ)を借りるために、親の prototype を指し示している参照。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?