一、什么是面向?qū)ο箝_(kāi)發(fā)?
什么是面向?qū)ο箝_(kāi)發(fā)呢?事實(shí)上它是有一個(gè)參照系的,它參照的是面向過(guò)程開(kāi)發(fā),可能這么說(shuō)還是有點(diǎn)迷糊,那就給大家舉一下生活中的例子。

上圖是公司的人事架構(gòu)圖
假如說(shuō)你是公司的董事長(zhǎng),你的手下有幾千名員工,你想跟員工宣布下個(gè)季度的規(guī)劃,要想把這個(gè)戰(zhàn)略達(dá)成,得通過(guò)所有員工的一起努力。
** 面向過(guò)程的開(kāi)發(fā)方式是:你得親自找這幾千名員工談話,把規(guī)劃告訴他們。**
但這個(gè)過(guò)程是很耗費(fèi)時(shí)間和精力的,那就有一個(gè)更優(yōu)的方式來(lái)解決它,那就是——面向?qū)ο箝_(kāi)發(fā)。
面向?qū)ο箝_(kāi)發(fā)的方式是:你只需跟你下級(jí)的員工說(shuō)接下來(lái)的規(guī)劃,財(cái)務(wù)總監(jiān)負(fù)責(zé)錢(qián),總經(jīng)理負(fù)責(zé)業(yè)務(wù),至于開(kāi)銷和業(yè)務(wù),你不需要管,由他們向下一級(jí)傳達(dá)。他們分別有面向自己的對(duì)象去管理。
通過(guò)這個(gè)例子,你也許會(huì)稍有理解,面向?qū)ο笫鞘裁茨兀?/p>
就是把復(fù)雜的事情模塊化,不同的功能劃分成不同的模塊,獨(dú)立出來(lái)處理。
它的好處是:
1. 會(huì)節(jié)省效率,更高效。
2. 代碼易于維護(hù)。
二、面向?qū)ο笾袑?duì)象指的是什么?它包括什么?
創(chuàng)建一個(gè)空對(duì)象
var obj = new Object();
那么對(duì)象的組成是什么呢?
對(duì)象由屬性和方法組成的
那屬性又是什么呢?
var arr = []; //創(chuàng)建一個(gè)數(shù)組
arr.num = 10; //給數(shù)組添加一個(gè)屬性 num 值是 10
console.log(arr.num); //10
由此可以看出,對(duì)屬性的操作跟變量是一樣的。屬性相當(dāng)于是變量,屬性是對(duì)象下面的變量。
那方法又是什么呢?
方法
arr.getNum = function(){
alert( 123 );
}
arr,getNum(); //123
函數(shù)
var fn = function(){
}
fn();
方法的操作跟函數(shù)很像,方法就是對(duì)象下面的函數(shù)
那我們來(lái)寫(xiě)一個(gè)最簡(jiǎn)單的面向?qū)ο蟪绦虬?/strong>
var obj = new Object(); //空對(duì)象
obj.name = 'jam'; //給obj對(duì)象下面添加了屬性 name 值是 jam
obj.say = function(){
alert('hello');
}
obj.say(); //執(zhí)行 => hello
關(guān)于面向?qū)ο缶拖日f(shuō)到這里 之后還會(huì)不定時(shí)分享一些的。