1. 程式人生 > >什麼是js面向物件?有什麼特點?

什麼是js面向物件?有什麼特點?

什麼是面向物件?

面向物件是一種對現實世界理解和抽象的方法,是計算機程式設計技術發展到一定階段後的產物。–引用自百度百科

通俗的理解就是:萬物皆物件!世界上的任何事和物都可以被視為物件,而我們需要關注的是物件本身可以實現的功能,不需要深入理解構成物件的元素。

js中的面向物件

面向物件在js裡有兩個層次的含義,第一種是會使用面向物件函式;第二種是構造面向物件函式。

js也是面向物件中的一種寫法,不過相對於java,js是一種弱資料型別,並不是嚴格意義上的面向物件。但是jq就是使用面向物件的寫法創作出來的js庫。

面向物件的特點

(“抽風機”諧音記憶)
面向物件有四個特點:
1. 抽象:抓住核心問題
2. 封裝:即把能夠實現功能的函式寫成封裝起來,在面向物件裡叫做方法。簡單來說就是把實現功能的函式寫成方法。
3. 繼承:繼承的意思是,在實現同一種功能的前提下,新物件可以使用就物件的屬性和方法。
4. 多型:一個變數在引用不同型別的情況下的不同狀態。多型開發在開發元件和模組化開發的時候能節省很多資源。

舉個例子說明面向物件

// 這裡的函式名在面向物件裡叫做類
function Create(n, s){
        // var obj = new Object();
        // obj叫做例項,同時也是物件,面向物件寫法中系統會自動建立一個obj空物件
        // 物件屬性
        this.name = n;
        this.sex = s;
        // this指標,在這裡指的就是這個物件

        // 物件方法
        this.showName = function(){
            alert(n);
        };
        this
.showSex = function(){ alert(s); }; // 返回物件 // 同樣,面向物件中系統會自動幫我們返回obj(即this) //return obj; //return this; }

原型(prototype)

原型可以用來建構函式的屬性和方法,使這個建構函式的屬性和方法成為公用的。使用原型的優點:在記憶體中節省資源,提高系統性能。

下面舉個例子說明原型:

Array.prototype.sum = function(){
    var num = 0
; for(var i=0;i<this.length;i++){ num += this[i]; } alert(num); };

這是一個用原型構造的陣列方法,將求和的sum方法掛在原型上,可以使這個方法被重複使用,當然,重點是節省記憶體資源。

使用原型還有一個優點,就是優先順序:
原型的優先順序類似於CSS中的優先順序,沒有使用原型的建構函式,就好比CSS中的行內樣式,優先順序高,而與原型掛鉤的屬性和方法 ,就像是style的內聯樣式,優先順序低於行內樣式。所以在呼叫同一種方法名的時候,系統會優先呼叫掛在原型上的方法!