0x00:使用oop技術,常常要使用許多的**模組,每個模組都提供特定的功能,每個模組老師孤立的,甚至與其它的模組完全獨立,這種模組化的程式設計方法大大的提供了**實現的多樣性,大大增加了**的重用性。js並不是直接的oop語言,但是可以通過模擬的方式做到其它很多oop語言才能做到的事情,如繼承、多型、封裝(沒有做不到,只有想不到)
0x01:物件的屬性
物件的屬性分為物件屬性、私有屬性 和類屬性
物件屬性:要建立物件後才能使用
私有屬性:在內部就可以使用,在外部需要通過閉包才能使用
類屬性可以通過物件名稱直接使用
function func()
func.classpor = "類屬性";
console.log(func.classpor);
var f = new func();
console.log(f.objpro1);
console.log(f.objpro2);
結果如圖 :
我們再訪問一下私有屬性試試看
console.log(f.privatepro);
結果如圖:
在內部訪問私用屬性:
function func()
}func.classpor = "類屬性";
var f = new func();
console.log(f.getter());
結果如圖:
還有就是通過閉包的方式來取得私有變數
function func()
return
function()
}var fun = new func();
console.log(fun());
看結果:
0x02:物件方法
物件方法包括:物件方法、私有方法和類方法,使用類似 前面的屬性
function
democlass()
//屬性方法
this.objmethod = function()
democlass.prototype.promethod = function()
}democlass.classmethod = function()
var f = new democlass();
f.objmethod();//
呼叫屬性方法
f.promethod();//
呼叫屬性方法
結果如圖:
那我們再呼叫一下私有方法試一下:
f.privatemethod(); //呼叫私有方法
呼叫一下類方法:
f.classmethod();//呼叫類方法
democlass.classmethod(); //呼叫類方法
總結:1,物件方法是可以通過例項被呼叫的,無論是類內的屬性方法或者是原型方法構造的屬性方法。
2,類方法不能通過例項被呼叫,可以通過類名"."類方法()的模式呼叫。 類方法也叫靜態方法
0x03:繼承、封裝、多型
console.log(objoneson
instanceof
oneson);
結果如圖:
如果使用prototype方法
console.log(objoneson
instanceof
oneson);
結果如圖:
子類的方法會覆蓋父類的方法,即表現的是多型性
function fatherclass(name,age)
}function anotherson(name,age)
}anotherson.prototype = new fatherclass();
function threeson(name,age)
}threeson.prototype = new fatherclass();
function yes_or_no(cls)
}var objanotherson = new anotherson();
var objthreeson = new threeson();
yes_or_no(objanotherson);
yes_or_no(objthreeson);
結果如圖所示:
即實現了類的多型。
js物件導向及物件導向的三大特性
一 js物件導向程式設計 在es5中我們是這樣去寫物件導向的程式設計方式的 function person name this setname function name let p newperson 張三 p.getname 張三 p.setname 李四 p.getname 李四在es6中,提...
物件導向三大特性
什麼是物件導向呢?之前我們做一件事的時候,常常是確定,先幹什麼,然後怎麼做,最後可以完事了。其實我們不妨這麼想一下,我們做事的時候是可以這樣的 這件事中涉及了什麼物件角色?如果我要把這件事做成那麼就需要物件之間是如何協作的?第二種方法,就是今天說的物件導向的方法了,好處正在慢慢體會。今天我想說的物件...
物件導向三大特性
0x00 嘮嘮叨叨 只是做乙個概念的記錄 0x01 物件導向的三大特性 n 封裝 把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。類將成員變數和成員函式封裝在類的內部,根據需要設定訪問許可權,通過成員函式管理內部狀態。n 繼承 繼承所表達的是類...