js入門執行個體の建構函式\方法的定義和調用\原型對象

來源:互聯網
上載者:User
js|對象|函數

<script language="javascript">
function circel(radius)
{//這個函數定義了類自身,下面r是建構函式定義並並初始化的一個執行個體變數
    this.r=radius;
}
//該屬性是類變數,他屬於建構函式的一個屬性
circel.PI=3.14159;
function area()
{//這個當然是計算圓面積的公式了
    return this.PI * this.r * this.r;
}
//下面我們通過把函數賦給建構函式的圓型對象使他成為一個執行個體方法,
//為了與Navigator3 相容,我們必須在原型對象產生之前建立並拋棄一個對象
new circel(0);
circel.prototype.area=area;
//以下是另一個函數,他將兩個參數對比,並返回較大的一個
function circel_max(a,b)
{
    if(a.r > b.r)
        return a;
    else
        return b;
}
//由於該函數比較的是兩個對象,所以將他看作是對單個Circel執行個體方法操作是沒有意義的
//但我們也不希望成為一個獨立的函數,所以將他賦以一個建構函式,使他成為一個類方法
circel.max=circel_max;
//下面的代碼使用了circel的各個欄位
var c=new circel(1.0);        //建立circel類的一個執行個體
c.r=2.2;                    //設定執行個體的一個變數r
var a=c.area();                //調用執行個體的area方法
var x=Math.exp(circel.PI);    //在我們自己的計算中使用變數PI
var d=new circel(1.2);        //建立另一個circel執行個體
var bigger=circel.max(c,d);//使用類方法circel.max
</script>
JScript.js檔案
/**//* JScript 檔案
複數就是一個虛數和一個虛數的和,虛數i是-1的平方根
*/

/**//*定義類的第一步是定義該類的建構函式,資格建構函式要初始化對象的所有執行個體函數
這些屬性是核心的“狀態變數”是他們使類的每個執行個體互不相同
*/

function JScript(real,img)
{
    this.x=real;//實數部分
    this.y=img;//虛數部分
}

/**//*定義函類的第二步是在建構函式的原型對象中定義他的執行個體方法(或者其他的屬性)
該對象定義的任何屬性都將被這個類的所有執行個體繼承
注意執行個體方法對this關鍵字 的隱式操作,許多方法都不需要其他的參數
*/

//返回複數的大小,他的定義是從原點(0,0)到複平面的距離
JScript.prototype.magnitude=function()
{
    return Math.sqrt(this.x * this.x + this.y * this.y);
};
//返回複數的相反數
JScript.prototype.negative=function()
{
    return new JScript(-this.x ,-this.y);
};
//以一種有效方式把JScript對象裝換成字串,這將是把JScript對象用作字串時候調用的函數
JScript.prototype.toString=function()
{
    return "{"+ this.x +","+ this.y +"}";
};
//返回一個複數的實數部分,該函數是在將JScript對象作為原始值處理時調用
JScript.prototype.valueOf=function() {return this.x;};

/**//*定義類的第三步是定義類方法。
常量和其他類變數作為函數構造自身的屬性(而不是建構函式的原型對象的屬性)
注意靜態方法,沒有使用this關鍵字,因為他們只對參數進行操作
*/
//計算兩個複數的和並返回結果
JScript.add()=function(a,b)
{
    return new JScript(a.x + b.x ,a.y + b.y);
};
//用一個複數減另一個複數,返回結果
JScript.subtract()=function(a,b)
{
    return new JScript(a.x - b.x , a.y - b.y);
};
//計算兩個複數的乘積,並返回結果
JScript.multiply()=function(a,b)
{
    return new JScript(a.x * b.x - a.y * b.y , a.x * b.x + x.y * b.y);
};

/**//*下面是一些有用的預定義複數,他們被定義成了類變數,這樣就能夠被用著常量(注意,他們實際並不是唯讀)
*/

JScript.zero=new JScript(0,0);
JScript.one=new JScript(1.0);
JScript.i=new JScript(0.1);



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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