javascript 建立進階對象

來源:互聯網
上載者:User
建立進階對象使用建構函式來建立對象

建構函式是一個函數,調用它來例示並初始化特殊類型的對象。可以使用 new 關鍵字來調用一個建構函式。下面給出了使用建構函式的新樣本。

var myObject = new Object();             // 建立沒有屬性的通用對象。var myBirthday = new Date(1961, 5, 10);  // 建立一個 Date 對象。var myCar = new Car();                   // 建立一個使用者定義物件,並初始化其屬性。

通過建構函式將一個參數作為特定的 this 關鍵字的值傳遞給新建立的Null 物件。然後建構函式負責為新對象執行適應的初始化(建立屬性並給出其初始值)。完成後,建構函式返回它所構造的對象的一個參數。

編寫建構函式

可以使用 new 運算子結合像 Object()Date()Function() 這樣的預定義的建構函式來建立對象並對其初始化。物件導向的編程其強有力的特徵是定義自訂建構函式以建立指令碼中使用的自訂對象的能力。建立了自訂的建構函式,這樣就可以建立具有已定義屬性的對象。下面是自訂函數的樣本(注意 this 關鍵字的使用)。

function Circle (xPoint, yPoint, radius) {this.x = xPoint;  // 圓心的 x 座標。    this.y = yPoint;  // 圓心的 y 座標。    this.r = radius;  // 圓的半徑。}

調用 Circle 建構函式時,給出圓心點的值和圓的半徑(所有這些元素是完全定義一個獨特的圓對象所必需的)。結束時 Circle 對象包含三個屬性。下面是如何例示 Circle 對象。

var aCircle = new Circle(5, 11, 99);
使用原型來建立對象

在編寫建構函式時,可以使用原型對象(它本身是所有建構函式的一個屬性)的屬性來建立繼承屬性和共用方法。原型屬性和方法將按引用複製給類中的每個對象,因此它們都具有相同的值。可以在一個對象中更改原型屬性的值,新的值將覆蓋預設值,但僅在該執行個體中有效。屬於這個類的其他對象不受此更改的影響。下面給出了使用自訂建構函式的樣本,Circle(注意 this 關鍵字的使用)。

Circle.prototype.pi = Math.PI;function ACirclesArea () {return this.pi * this.r * this.r; // 計算圓面積的公式為 ?r2。}Circle.prototype.area = ACirclesArea; // 計算圓面積的函數現在是 Circle Prototype 對象的一個方法。var a = ACircle.area();               // 此為如何在 Circle 對象上調用面積函數。

使用這個原則,可以給預定義的建構函式(都具有原型對象)定義附加屬性。例如,如果想要能夠刪除字串的前後空格(與 VBScript 的 Trim 函數類似),就可以給 String 原型對象建立自己的方法。

// 增加一個名為 trim 的函數作為// String 建構函式的原型對象的一個方法。String.prototype.trim = function(){    // 用Regex將前後空格    // 用Null 字元串替代。    return this.replace(/(^\s*)|(\s*$)/g, "");}// 有空格的字串var s = "    leading and trailing spaces    ";// 顯示 "    leading and trailing spaces     (35)"window.alert(s + " (" + s.length + ")");// 刪除前後空格s = s.trim();// 顯示"leading and trailing spaces (27)"window.alert(s + " (" + s.length + ")");
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.