DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> 舉例解析js面向對象
舉例解析js面向對象
編輯:JavaScript基礎知識     
js面向對象淺析

 

1.類結構剖析

function fn(){

      var variable = "";  //靜態屬性

      function method(){};   //靜態方法

      this.propertyName = value;   //特定屬性 

      this.method = function(){};//特定方法

}

ps: 靜態屬性和靜態方法是用於函數fn內部使用的,不可被外界訪問。而特定屬性和特定方法是在函數被new後所創建的對象應該擁有的屬性和方法,因此說可以被外界所訪問。若沒有new關鍵字,則會被認為是普通函數調用,this指向會是window對象。

     此外,還可以直接這樣寫:

     fn.propertyName 或 fn.method = function(){};

     就好比java中類的靜態變量,在js裡new出生的對象不能使用類的成員變量,而java中類和對象都可以直接使用。

2.矩形類

function Rect(width.height){
   this.r_width= width;
   this.r_height= height;
   this.desc = function(){
       return '我是一個矩形哦';
   };
};

//擴展矩形計算面積方法
Rect.prototype.getArea = function(){
   return this.r_width * this.r_height;
};

//打印結果函數

Rect.prototype.toString = function(){
alert("這個矩形的面積是:"+this.getArea()+",寬度是:"+this.r_width+",高度是:"+this.r_height);
};

3.平行四邊形類

function Square(value){
    this.s_width = value;
    this.s_height = value;
};

Square.prototype = Rect.prototype; //將Rect的prototype對象賦給Square,拿不到Rect的特有屬性和方法,並且會覆蓋Square中原有擴展的屬性或方法。若不想被覆蓋,可在後面繼續加Square.prototype.method= function{};

Square.prototype = new Rect();//這種寫法會拿到Rect特有的屬性和方法,還包括Rect中原型鏈的東西。同時也需要注意Square.prototype容易被覆蓋的問題,一般寫在後面擴展。

例如:
Square.prototype.say = function(){
     return "我是一個平行四邊形";
};

同時也可對繼承過來的屬性和方法進行覆蓋

Square.prototype.getArea  = function(){

    return this.s_widht * s_height;

}

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved