[JS Flow] 06. Prototype



Prototypeとは?


コンストラクション関数(コンストラクション関数)のオブジェクト構成
newキーワードでinstanceを作成すると、instanceのProperty proptoはコンストラクション関数のprototypeを参照します.(protoはprototypeオブジェクトのpropertyを呼び出すときに省略できます)

プロトタイプを使用する理由


メモリの使用効率.プロトタイプに1回保存するだけで、すべてのインスタンスオブジェクトが使用できます.

メソッド継承と操作原理

constructor.prototype.functionName = function(){...};
作成関数を使用する場合は、インスタンスを使用できます.
instance.__proto__.functionName();
instance.functionName();
呼び出し時に同じ関数を参照するが、関数の前の各オブジェクトはinstanceである.protoとinstanceには違いがあります.これは、thisが参照するオブジェクトが異なることを意味します.

プロトタイプフィルタ


すべてのデータ型は、オブジェクトジェネレータ関数によって作成されます.
(primitive typeも...数字は数字、文字はStringなど)
インスタンスオブジェクトもオブジェクト作成者関数によって作成され、prototypeも例外ではありません.
例えばArrayprototype(.proto)がオブジェクトです.参考原型の意味
Object.Prototypeには、toString()やhasOwnProperty()などのメソッドが内蔵されています.

テキストオブジェクトは?


テキストオブジェクトがオブジェクトです.インスタンスは、テキストオブジェクトに限定された方法でプロトタイプを参照することはできません.(Object.prototypeで宣言した場合、他のデータ型も使用可能)
そこで,構造関数を静的に宣言した.
文字オブジェクトの専用メソッドはObject.freeze(),Object.assign()であり,このようにして構造関数が最前面に現れる.