JavaScript物件導向

來源:互聯網
上載者:User

標籤:之間   row   迴圈   class   異常   rip   初學   this指標   擷取   

物件導向是一種對現實世界理解和抽象的方法。就是很抽象吧。當然,JavaScript·中也有物件導向。

1、建立對象的方法

(1)常規建立對象的方式

var o = new Object();

這樣就建立了一個對象,不過,對象也要分類型(當然類型是靠自己定義的),這樣建立的對象,都是object類型的,使用中,難以區分不同類型的對象。

 

(2)通過建構函式來建立對象 

function Person(name){            this.name=name;                           //添加屬性   
……
}

這樣就建立了一個person對象,其中,包含著person對象的屬性,其實和c#都差不多

 

(3)通過對象字面量建立對象

        var p1 = {            name: ‘name‘,            email: ‘163.com‘,
Func: function () { alert(‘this.age); } };

對象可以看作是一個索引值對集合,可以用 for……in迴圈遍曆(for in迴圈相當於c#中的foreach迴圈)

 

2、原型對象

原型對象:一個難以理解的概念,大概就是一個 prototype 定義的一個_proto_屬性,來指向上一層對象,具體說明:http://www.cnblogs.com/shuiyi/p/5305435.html

關鍵是原型對象的作用:

  -->建立原型鏈,通過原型鏈去尋找上一層的屬性,或者方法。

       原理:當擷取一個對象的屬性時,系統首先會檢測對象是否直接包含這個屬性,不包含再去原型中尋找這個屬性

  這樣,就實現了繼承,在js中,沒有類的概念,繼承是通過對象與對象之間實現的

var p1=new Person();   Man.prototype=p1;   //實現了Man繼承Person

 

3、閉包

   概念:在一個函數內部又定義一個函數,內建函式能訪問外部函數範圍範圍內的變數,這個內建函式就叫做閉包
   作用:改變變數的範圍類比物件導向

 

4、this指標

this在JavaScript中,使用猶為重要。

this指向的對象總結:

(1)在全域執行環境中使用this,就是為window對象

(2)如果函數沒有明顯的作為非window對象的屬性,而只是定義了函數,不管這個函數是不是定義在另一個函數中,這個函數的this仍然表示window對象(就是因為沒有註冊給對象,所以才表現出window屬性)
如果函數顯式地作為一個非window對象的屬性,那麼函數中的this就表示這個對象

(3)當通過new運算子來調用函數時,函數被當做一個建構函式,this指向建構函式建立出來的對象

 

5、Error對象

    var custError = new Error(‘自訂錯誤‘);      //建立error類的執行個體            throw custError;                              //拋出異常

 

當然,JavaScript對象中還有一大堆的對象,還有方法,不過初學基本是涉及不到的,就瞭解到基本的一些。

 

JavaScript物件導向

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.