什麼是js面向物件?有什麼特點?
阿新 • • 發佈:2019-01-08
什麼是面向物件?
面向物件是一種對現實世界理解和抽象的方法,是計算機程式設計技術發展到一定階段後的產物。–引用自百度百科
通俗的理解就是:萬物皆物件!世界上的任何事和物都可以被視為物件,而我們需要關注的是物件本身可以實現的功能,不需要深入理解構成物件的元素。
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的內聯樣式,優先順序低於行內樣式。所以在呼叫同一種方法名的時候,系統會優先呼叫掛在原型上的方法!