javascript是弱類型,直譯式的面相對(duì)象編程語(yǔ)言。
在之前我們說(shuō)過(guò)
var a = 123; 在這里a是整數(shù) 但是我們可以給a重新復(fù)制為 a="你好"; 在這個(gè)過(guò)程中變量a 的值發(fā)生了改變,對(duì)應(yīng)的類型也不再是數(shù)值類型,我們稱這種特性為弱類型。
直譯式指的是不需要通過(guò)其他方式,瀏覽器可以直接編譯解析的方式為直譯式。
那么面相對(duì)象是什么呢oo?
簡(jiǎn)單來(lái)說(shuō) 面相對(duì)象要拆分為兩個(gè)不同的單詞進(jìn)行描述 面相-對(duì)象 面相是個(gè)很好理解的單詞,就是對(duì)著,面對(duì) 我們可以說(shuō)面向世界,面向未來(lái) ,這里面主要的就是對(duì)象這個(gè)詞語(yǔ)。
面向?qū)ο?對(duì)現(xiàn)實(shí)世界的理解與抽象,是計(jì)算機(jī)編程技術(shù)發(fā)展到一定階段的產(chǎn)物。
ok 上訴描述有點(diǎn)抽象,我們來(lái)舉個(gè)栗子
大家都知道計(jì)算機(jī)最終的目的是通過(guò)電腦來(lái)解決現(xiàn)實(shí)中的事物與功能。那我們現(xiàn)在要用計(jì)算機(jī)來(lái)描述一個(gè)航班信息。
大家思考下,我們首先需要個(gè)飛機(jī),然后需要一些旅客。
那在這里面我們當(dāng)然不能在電腦里裝一個(gè)飛機(jī)或者一堆人(二次元可以試試)。那怎么辦呢?
在這里我們通過(guò)一些描述信息 如 string字符串 或number數(shù)值來(lái)描述一個(gè)真實(shí)飛機(jī)。
那在這里,我們就通過(guò)使用js的內(nèi)置數(shù)據(jù)類型來(lái)描述了一個(gè)飛機(jī)的特性,那么小伙伴會(huì)有個(gè)問(wèn)題~ 這里哪有對(duì)象 哪有面相? ok我們繼續(xù)向下來(lái)處理。
上面的代碼我們只是描述了一個(gè)簡(jiǎn)單的飛機(jī),如果我們有兩架飛機(jī)怎么辦呢?
我們可以通過(guò)定義額外的變量來(lái)進(jìn)行描述,當(dāng)然這種方式很不理想,因?yàn)槲覠o(wú)法確定我定義的是一個(gè)飛機(jī)還是以個(gè)拖拉機(jī)或者三輪子。這個(gè)時(shí)候就需要我們面相對(duì)象來(lái)進(jìn)行登場(chǎng)了
----------------------------------------- 我是前戲分割線 --------------------------------------------
面向?qū)ο螅和ㄟ^(guò)將現(xiàn)實(shí)世界中具有相同屬性和行為的事物抽取為一個(gè)類,一個(gè)類的實(shí)例,我們稱之為對(duì)象的實(shí)例。
類:具有相同屬性和行為的事物的抽象體。
對(duì)象: 一個(gè)類的具體實(shí)現(xiàn)和顯示的真實(shí)例子。
首先我們搞清楚類的概念,什么是類?
類的概念有點(diǎn)抽象和空虛,比如我們可以說(shuō) 小明 和 小紅 是 人,那么在這個(gè)過(guò)程中, 人就是類,小明和小紅就是類的實(shí)體,也就是我們常說(shuō)的對(duì)象。
類具有兩個(gè)特殊的實(shí)現(xiàn)方式,我們稱之為屬性和方法。
屬性 :一般用來(lái)描述我們看得見(jiàn)摸得著的抽象。如色彩、身高、體重、名字等
方法(行為) :方法一般指動(dòng)態(tài)的操作行為。比如跑步、說(shuō)話、上學(xué)、寫(xiě)作業(yè)、泡妹紙...
類的特點(diǎn):類一般是抽象而成,也就是說(shuō)本身不具有實(shí)際的行動(dòng)意義,需要一個(gè)實(shí)際的例子來(lái)用來(lái)對(duì)他的內(nèi)部進(jìn)行操作。
對(duì)象:通過(guò)關(guān)鍵字new或其他方式創(chuàng)建,繼承了類的屬性和行為的真實(shí)例子進(jìn)行操作。
我們的編程就是定義好一個(gè)類,然后通過(guò)對(duì)實(shí)例對(duì)象的操作進(jìn)行工作,這種方式就是面向?qū)ο蟆?/p>
大家可以想象下我們?cè)谥敖佑|的對(duì)象概念 如 String、Number 他們都是類的概念定義,