JavaScript継承モード継承モード
JavaScriptで継承を実現する方法.
引き継ぎ方が思ったよりずっと簡単で驚きました.JAvascriptは何でもないが、彼はまだ起きられないやつだ. functional pseudo classical class ここでは,関数化の方法に加えてpseudo古典とclassを用いた方法も実現する.
pseudo classical 親オブジェクト作成者と継承する子オブジェクトの作成者を準備します。 クラスロールとしてPascal Caseを使用します。ここでは動物と人間を使います。 //親オブジェクト作成者 const Animal = function () { //属性 this.name=「動物」 }; //機能追加 Animal.prototype.say = function (hi) { return hi; }; //サブオブジェクトの作成者 const Human = function (age, height) { //親thisを子thisにバインドする Animal.call(this); this.name=「人」 this.age = age; this.height = height; }; 受け継がれていない。 機能を継承する必要があります。 機能を継承すると、親の作成者がその子を継承します。 新しいオブジェクトのコンストラクション関数をサブオブジェクトの作成者に変更する必要があります。 //親の機能はこの接続によるものです。親の原型をコピーして子供に割り当てる。 Human.prototype = Object.create(Animal.prototype); //親の作成者ではなく、子の作成者に変更します。そうしないと、コンストラクタは親になります。 Human.prototype.constructor = Human; //サブアイテムへの機能の追加 Human.prototype.bye = function () { return "bye bye"; }; //継承した親機能の変更 Human.prototype.say = function () { return "hello"; }; 受け継がれているかどうか見てみましょう。 const ani = new Animal(); ani.say(「ふんふん」) うんうん const afashs = new Human(18, 173); afashs.age; // 18 afashs.bye(); // bye bye afashs.say(); // hello ES6 syntax (class/ super) プログラムは同じです。親も子供も類文法を使う。javaを思い出させる文法です。 本当にこの爪を见て..。シナリオのように もともとJavaとは少しも関係のない言語です。 super()ももともとJavaにあったのですが、これも追加されたようです。 親クラスのプロパティ、機能などにはsuper()というメソッドでアクセスできます。 //親 class Animal { //属性 constructor() { this.動物 } //機能 say(hi) { return hi; } } //サブクラス(extendsに継承) //注意!マルチ継承はサポートされておらず、Javaでもサポートされていませんが、ここでは実装という機能はありません。) class Human extends Animal { constructor(age, height) { //継承属性 super(); this.name=「人」 this.age = age; this.height = height; } //機能追加 bye() { return 'byebye'; } //機能変更 say() { //機能はsuperに引き継ぐこともできます return super.say("hello"); } } 確認してみます。 const ani = new Animal(); ani.say(「ふんふん」) うんうん const afashs = new Human(18, 173); afashs.age; // 18 afashs.bye(); // byebye afashs.say(); // hello
引き継ぎ方が思ったよりずっと簡単で驚きました.JAvascriptは何でもないが、彼はまだ起きられないやつだ.
pseudo classical 親オブジェクト作成者と継承する子オブジェクトの作成者を準備します。 クラスロールとしてPascal Caseを使用します。ここでは動物と人間を使います。 //親オブジェクト作成者 const Animal = function () { //属性 this.name=「動物」 }; //機能追加 Animal.prototype.say = function (hi) { return hi; }; //サブオブジェクトの作成者 const Human = function (age, height) { //親thisを子thisにバインドする Animal.call(this); this.name=「人」 this.age = age; this.height = height; }; 受け継がれていない。 機能を継承する必要があります。 機能を継承すると、親の作成者がその子を継承します。 新しいオブジェクトのコンストラクション関数をサブオブジェクトの作成者に変更する必要があります。 //親の機能はこの接続によるものです。親の原型をコピーして子供に割り当てる。 Human.prototype = Object.create(Animal.prototype); //親の作成者ではなく、子の作成者に変更します。そうしないと、コンストラクタは親になります。 Human.prototype.constructor = Human; //サブアイテムへの機能の追加 Human.prototype.bye = function () { return "bye bye"; }; //継承した親機能の変更 Human.prototype.say = function () { return "hello"; }; 受け継がれているかどうか見てみましょう。 const ani = new Animal(); ani.say(「ふんふん」) うんうん const afashs = new Human(18, 173); afashs.age; // 18 afashs.bye(); // bye bye afashs.say(); // hello ES6 syntax (class/ super) プログラムは同じです。親も子供も類文法を使う。javaを思い出させる文法です。 本当にこの爪を见て..。シナリオのように もともとJavaとは少しも関係のない言語です。 super()ももともとJavaにあったのですが、これも追加されたようです。 親クラスのプロパティ、機能などにはsuper()というメソッドでアクセスできます。 //親 class Animal { //属性 constructor() { this.動物 } //機能 say(hi) { return hi; } } //サブクラス(extendsに継承) //注意!マルチ継承はサポートされておらず、Javaでもサポートされていませんが、ここでは実装という機能はありません。) class Human extends Animal { constructor(age, height) { //継承属性 super(); this.name=「人」 this.age = age; this.height = height; } //機能追加 bye() { return 'byebye'; } //機能変更 say() { //機能はsuperに引き継ぐこともできます return super.say("hello"); } } 確認してみます。 const ani = new Animal(); ani.say(「ふんふん」) うんうん const afashs = new Human(18, 173); afashs.age; // 18 afashs.bye(); // byebye afashs.say(); // hello
Reference
この問題について(JavaScript継承モード継承モード), 我々は、より多くの情報をここで見つけました https://velog.io/@afashs/Inheritanceテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol