標籤:log 獨立 java class this關鍵字 名詞解釋 相對 建立對象 instance
今天說物件導向,嗯,不是那個對象,是這個對象。
接下來就開始今天的內容:
什麼是物件導向:
就是把資料及資料的操作方法放在一起,作為一個相互依存的整體----對象。對同類對象抽象出其共性,形成類。
類中的大多資料,只能用本類的方法進行處理。類通過一個簡單的外部介面與外界發生關係,對象與對象之間通過訊息進行通訊。程式流程由使用者在使用中決定。
名詞解釋:
基於對象:一切皆對象,以對象的概念來編程。
物件導向編程:
對象:就是人們要研究的事物,不僅能表示具體事物,還能表示抽象的規則,計劃或事件。
屬性的無序集合,每個屬性可以存一個值(原始值,對象,函數)
對象的屬性和行為:
屬性:用資料值來描述他的狀態
行為:用來改變對象行為的方法
類:
具有相同或相似的性質的對象的抽象就是類。對象的抽象,就是類。累的具體化就叫做對象。
說了物件導向,就說一下面向過程:
自頂向下順序執行,逐步求精;其程式結構是按功能劃分為若干個基本模組,這些模組形成一個樹狀結構;各模組之間的關係儘可能簡單,在功能上相對獨立;
每一模組內部均是由順序、選擇和迴圈三種基本結構組成;
其模組化實現的具體方法就是使用程式。程式流程寫在程式是就已決定。
說了這麼多概念性的問題,還是有點模糊,下面來寫相關對象的一屆方法:
1、建立對象
(1)直接量
不如建立一個狗狗的對象,代碼如下:
var dog = {
//添加name屬性 name : "Td",
//添加叫的方法 say : function (){ document.write("汪汪汪"); } }
(2)原廠模式
1 <script> 2 //用原廠模式,先要確定建立對象的屬性和方法 3 //列如:建立摩拜單車,先要確定其屬性和方法 4 //屬性:名字 價錢 二維碼 顏色 鎖 5 //方法 : 跑 6 function createObj(name,price,code){ 7 //建立對象 8 var obj = new Object(); 9 obj.name = name;10 obj.price = price;11 obj.code = code;12 obj.color = "yellow";13 obj.run = function(){14 alert(this.name+"開始出發");15 }16 //在對象裡,要使用對象的屬性或方法,要用this.屬性或this.方法。17 18 //返回對象19 return obj;20 }21 //調用工廠函數22 var a = createObj("摩拜單車1",1,101);23 var b = createObj("摩拜單車2",1,102);24 var c = createObj("摩拜單車3",1,103);25 26 a.run();27 28 alert(a.name + "價錢" + a.price+"元");29 </script>
(3)建構函式
1 <script> 2 //建構函式 (又名 初始函數):用來建立對象的 3 4 //develop:開發 5 //【注意】1、建構函式名 第一個字母 一定要 大寫 6 // 2、建構函式沒有傳回值 7 //this : 表示當前, 指向的是自己本身 8 9 function Game(name,personCount,develop){10 this.name = name;11 this.personCount = personCount;12 this.develop = develop;13 this.play = function(){14 alert("我是"+this.name+"遊戲"+"我的玩家數量是:"+this.personCount);15 }16 }17 18 //建構函式不返回對象是因為 關鍵字new19 //new 關鍵字建立對象並返回對象20 var Lol = new Game("Lol","1000萬","拳頭");21 Lol.play();22 var Cf = new Game("cf","3億","三星");23 Cf.play();24 //instanceof 判斷一個對象他父親是誰25 alert(Lol instanceof Game);26 //Lol instanceof Game true27 //Lol instanceof Object true28 29 </script>
說一下建構函式和原廠模式的區別:
建構函式名首字母大寫,與原廠模式區別開;
建構函式內部使用this關鍵字;
建構函式沒有傳回值,原廠模式需要傳回值;
今天就這樣,明天續更。。。。
javascript對象(1)