JS の新しい操作は具体的に何をするのですか?段階的に見てみましょう。
たとえば、関数を定義して新しい操作を実行します:
function Foo(){} var foo = new Foo();
脳の補足:
すべての関数はプロトタイプと呼ばれる属性を持ち、型は参照オブジェクトであるオブジェクトです。
すべてのオブジェクトには __proto__ という属性があります。type フィールドは object であり、これは参照オブジェクトでもあります。
まず第一に、JavaScript エンジンは新しい操作を実行すると、すぐにメモリのブロックを開き、空のオブジェクトを作成します (そして、これがこのオブジェクトを指すようにします)。
次に、コンストラクター関数 Foo() を実行して空のオブジェクトを構築します (コンストラクター内のすべての属性とメソッドが空のオブジェクトに 1 つずつインストールされるため、コンストラクターと呼ばれます)。
しかし、この空のオブジェクトには __proto__ という属性が追加されており、この __proto__ は Foo() のプロトタイプ オブジェクトを指しています。つまり、__proto__ = プロトタイプ;