Javascript基礎と対象向け基礎~第四講Javascript中の類対象

5061 ワード

目次に戻ります
今日はJSでどうやってクラスを実現しますか?実は昨日の夜に書いたはずですが、失言しました.「すみません」と言っています.JSの中のクラスはJSの対象に向かう基礎で、私の最も得意なもので、あなたの書いたコードは1つのレベルを高めることができますか?普通はこの点から見てきたのです.
パーセンテージクラスの定義:
クラスは現実的な事物の抽象であり、一つのクラスは属性と方法から構成され、属性は固定的な情報であり、方法は種類のある行為であり、類はしばしば抽象的な複雑な対象に用いられ、類と類はこの間に継承され、一般的にJSのfunctionによって実現され、JSの中の類対象はJS対象に向ける基礎を実現する.
占有率の構造体の定義:
一つの構造体も現実的な事物に対する抽象的なもので、論理的で簡単な対象を表しています.一般的にJSのobjectオブジェクトを通じて実現されます.
構造体のコードを実現します.
      //       
        var Animal = {
            Name: "  ",
            Type: "",
            Food: [" ", " "],
            Print: function () {
                console.log("  :" + this.Name + ",  :" + this.Type + ",  :" + this.Food);
            }
        };
        Animal.Print();//  
複雑なクラスコードを実現します.
     //       
        var AnimalFun = function (name, type) {
            this.Name = name;
            this.Type = type;
            this.Food = [" ", " "];
            this.Print = function () {
                console.log("  :" + this.Name + ",  :" + this.Type + ",  :" + this.Food);
            }
        };
        var animalFun = new AnimalFun();
        animalFun.Print();
サブクラスは親クラスを継承しますが、親タイプの属性を複写し、親タイプのメソッドを呼び出します.コードは以下の通りです.
     //
        var Dog = function (name, type, food) {
            //        ,   name    
            AnimalFun.call(this, name, type);
            //      
            this.Food = food;
        }

        // Dog      AnimalFun    
        Dog.prototype = new AnimalFun();
        //  constructor   Student ,     Student  prototype Person   
        //   constructor    
        Dog.prototype.constructor = Dog;
        //   Dog   
        var s = new Dog(' ', '    ', ' ');
        //         
        s.Print(); //  :  : ,  :    ,  : 
豆知識:JS実現類の継承の仕組みはこうです.
サブコンストラクタで父のコンストラクタ(父のクラス.call)を呼び出します.
サブタイププロトタイプ(プロトタイプ)の属性が親タイプの例を修正します.関数の拡張を実現するために、Docg.prototype=new Animal Fun();親タイプAnimal Funを拡張することを表します.
サブタイプのprototypeをリセットするconstructorの属性はサブクラスです.
読んでくれてありがとうございます.
目次に戻ります