作成して修正したものが以下。関数は、シグネチャ(引数の型と数)を持たないため、引数の型や数のチェックを行わないし、「オーバーロード」という概念も存在しない。呼び出し元から渡された引数を管理しているオブジェクトで、暗黙的に生成される。「オブジェクトのインスタンスを返せ!」とコンストラクタに命令するための演算子。いう説明がすごく分かりやすい。演算子を用いて呼び出された場合は、例外的に、return文の有無に関わらずオブジェクトのインスタンスが返却される。「クラス」は存在しない。クラスの代わりとして使われる。プロパティに追加されたメソッドに対しても同様に暗黙の参照を持つ。プロパティにメソッドを追加する。this.name);}とした方がメモリの節約になるので、通常は後者のように書く。「オブジェクト指向の継承」を実現するための仕組み。プロパティとして格納する。メソッドを検索して見つかったので、実行!というプロトタイプチェーンを辿る。結合する値(レシーバ)は、メソッドおよび関数の呼び出し時に決まる(呼び出され方によって決まる)。メソッドプロパティがルックアップされるオブジェクトに結合される。呼び出し元のオブジェクトを指すことになる。そのインスタンス自身に結合される。グローバルオブジェクトに結合される。ような高階関数の引数として渡された場合は、少しやっかい。