1)使用建構函式建立對象的執行個體
在JAVASCRIPT中建構函式和其它物件導向的語言一樣,不可以直接調用,在用 new 關鍵字建立一個對象時自動的調用.
以下是JAVASCRIPT中使用建構函式的新樣本。
var myObject = new Object(); // 建立沒有屬性的通用對象。
var myBirthday = new Date(1961, 5, 10); // 建立一個 Date 對象。
var myCar = new Car(); // 建立一個使用者定義物件,並初始化其屬性。
編寫建構函式
可以使用 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);
2)使用原型來建立對象
在JAVASCRIPT中可以採用prototype關鍵字來為對象創新成員函數和屬性,可以在一個對象中更改原型屬性的值,新的值將覆蓋預設值,但僅在該執行個體中有效。屬於這個類的其他對象不受此更改的影響。
下面給出了使用自訂建構函式的樣本,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 對象上調用面積函數。
下面的樣本是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 + ")");
3)定義類的靜態成員
在JAVASCRIPT中定義類的靜態成員可以直接如此定義
例如我如果要在類中定義一個靜態方法以便返回類的執行個體.
可以先定一個createNew將一個方法對象附給它:
SplitterBar.createNew = _createnew;
以下是方法的執行個體:
function _cretaenew()
{
var bar=new SplitterBar();
return bar;
}