javascriptのプロトタイプはjavaのクラスと似ています。だから、コード:
Employee.prototype = Object.create(Person.prototype);
Employee.prototype.constructor = Employee;
手段:
class Employee inherits new Person() { // meaning of first line
Employee constructor = Employee // meaning of second line
}
古典JavaScriptで、何のクラスが存在しない、代わりがあるコンストラクタ。そして、コンストラクタは、myFunction()
の代わりにnew myFunction()
で呼び出す通常の関数です。
そして、クラスに属するコンストラクタの代わりに、javascriptのプロトタイプ(クラスのようなオブジェクト)はコンストラクタのプロパティです。そして、はい、関数は、他のオブジェクトと同じようにプロパティを持つことができるように、javascriptの他のものと同じようにオブジェクトです。
また、javascriptコンストラクタでは、コンストラクタを継承することはできません(愚かではありません:D)。代わりに、コンストラクタはオブジェクトから継承します(厳密に言えば、コンストラクタを呼び出すと継承が発生するため、オブジェクトはオブジェクトから継承します)。そのため、スーパークラスオブジェクトのインスタンスを作成して継承できるようにするためです。
技術的には、Employee.prototype.constructor
という行は必須ではありません。最初の行は、継承を設定するために必要なすべてです。
'Employee.prototype.constructor'の最初の行の後に' Person'があります。これは、関数の 'prototype.constructor'プロパティが常に関数そのものを指しているからです。したがって、例えば、2行目で行われていることを行うなどして、修正する必要があります。それはあなたが知りたいことですか?私はあなたが求めていることを本当に理解していません。 –
私は単に両方のステートメントの意味を見ています。 –