中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

Javascript基礎與面(mian)向(xiang)對(dui)象基礎~第四講 Javascript中的類(lei)對(dui)象

回到目錄 

  今天來說JS中如何(he)實現類(class),事實上本應該昨天晚上寫的(de),可我失言(yan)了,在些說一聲(sheng)“抱歉”!JS中的(de)類是JS面(mian)向對象的(de)基(ji)礎,也是我最拿手(shou)的(de)東西,你寫的(de)代(dai)碼(ma)能否提高一個層次,一般是從這點上看出來的(de)。

占占對類的定義:

類是對(dui)現(xian)(xian)實(shi)中(zhong)的(de)事物的(de)抽(chou)象(xiang)(xiang),一(yi)個類一(yi)般(ban)由屬(shu)(shu)性(xing)和方法構成,屬(shu)(shu)性(xing)是一(yi)些固定(ding)的(de)信息,而方法是類的(de)某種(zhong)行(xing)為,類往(wang)往(wang)用(yong)來抽(chou)象(xiang)(xiang)一(yi)些復(fu)雜的(de)對(dui)象(xiang)(xiang),類與類這間可以(yi)進行(xing)繼(ji)承,一(yi)般(ban)通過JS的(de)function實(shi)現(xian)(xian),JS中(zhong)的(de)類對(dui)象(xiang)(xiang)是實(shi)現(xian)(xian)JS面向對(dui)象(xiang)(xiang)的(de)基(ji)礎(chu)。

占占對結構體的定義:

一(yi)(yi)個(ge)結構(gou)體(ti)也是對(dui)現(xian)實事(shi)物的一(yi)(yi)種抽象(xiang),它用來表示(shi)邏輯簡單的對(dui)象(xiang),一(yi)(yi)般通(tong)過JS的object對(dui)象(xiang)實現(xian)

實現結構體的代碼:

      //簡單結(jie)構體對象
        var Animal = {
            Name: "動物",
            Type: "",
            Food: ["草", "肉"],
            Print: function () {
                console.log("名稱:" + this.Name + ",類型:" + this.Type + ",食物:" + this.Food);
            }
        };
        Animal.Print();//調用

實現復雜的類的代碼:

     //復雜(za)的類型對象(xiang)
        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();

子類(lei)去(qu)繼承父類(lei),但復寫父類(lei)的(de)屬(shu)性,調用父類(lei)的(de)方法,代碼如下:

     //子類(lei)可(ke)以(yi)繼承父(fu)類(lei),并可(ke)以(yi)復寫它的屬性
        var Dog = function (name, type, food) {
            //調用父(fu)類(lei)構(gou)造方法,并傳(chuan)遞name參數  
            AnimalFun.call(this, name, type);
            //復(fu)寫屬性  
            this.Food = food;
        }

        //將Dog的原型鏈指向AnimalFun對象  
        Dog.prototype = new AnimalFun();
        //重(zhong)置constructor屬性為(wei)Student類,由于(yu)設置了Student類的prototype為(wei)Person時  
        //擦除了(le)constructor屬性  
        Dog.prototype.constructor = Dog;
        //實例化Dog類(lei)  
        var s = new Dog('狗', '低級動物', '肉');
        //調(diao)用父類(lei)的方法  
        s.Print(); //結果:名稱:狗,類(lei)型:低級動物,食物:肉

小知識:JS實現類的繼承的機制是這樣的:

在子類(lei)(lei)構造(zao)函(han)數(constructor)中調用(yong)父(fu)類(lei)(lei)構造(zao)函(han)數(父(fu)類(lei)(lei).call()).

修改子類prototype(原型鏈)屬性為父類的實例.(prototype一般用來實現對函數的擴展,Dog.prototype = new AnimalFun();表示對父類AnimalFun進行擴展)

重置(zhi)子類的(de)prototype的(de)constructor屬性(xing)為子類.

感謝您的閱讀!

回到目錄

posted @ 2013-01-23 09:45  張占嶺  閱讀(1030)  評論(10)    收藏  舉報