體驗javascript之美6:若是你以爲什麼都會了或者不知道js學什麼了看這裏-面向對象編程

概述

當你們已經把js的語言基礎理解了,而後可以寫出一些簡單的例子了,這個時候基本上達到了一年工做經驗的水平,而本身可以獨立的寫一些小功能,完成一些小效果,或者臨摹修改一些比較複雜的插件的時候差很少就是兩年工做經驗的水平,這個時候不少js開發者會陷入迷茫或者不自知,基本上會出現兩種狀況:java

1.js好像就這麼多東西,公司給我功能我都能寫出來寫不出來的網上找插件也能看懂,可是本身不會寫,想學習又不知道學什麼。算法

2.好像js就那麼點兒東西,公司給個人需求我都能寫出來,js很簡單。可是好像js大牛跟我又離的很遠,到底我行不行?typescript

這個時候呢基本上我會推薦學生了解三個東西:編程

1.js編程方式設計模式

2.設計模式函數式編程

3.算法函數

每個東西都會開闊你的思路帶你進入一個全新的世界。學習

好咱們從這節課開始咱們就先從js編程方式提及。prototype

說到編程方式,js經常使用的有三種。插件

1.面向過程

2.函數式編程

3.面向對象編程

第二個並非你們理解的那樣,咱們先說1,3.

舉個現實例子就明白了。

手動炒菜用的是面向過程式編程,菜就是全局變量,你經過一步一步的修改全局變量,進而影響周邊代碼,最後產出想要的結果。這個就是面向過程的思想,優勢是複合人類基礎的思惟方式,簡單易學,缺點是當事情複雜的時候面向過程步驟太多很難編寫和維護。

用高壓鍋燉排骨就是面向對象是編程,你並不知道高壓鍋怎麼工做的,扔進去食材,點擊一個燉排骨按鈕調用高壓鍋的功能,等着吃就好了。優勢是大型複雜程序會變的簡單,缺點是若是隻是簡單的邏輯用面向對象顯得麻煩,你煮方便麪確定不用高壓鍋。

多說一句函數是編程是js很是強大也是我最喜歡的,之後再說,咱們先說面向對象編程。

1.什麼是對象?

​ 仍是類比現實生活,對象就是你女友,你爲何讓她當你女友無非兩方面。

屬性(長得咋樣、人品咋樣):長頭髮、大眼睛、個子高、皮膚白、愛旅遊

​ 方法(能幹什麼、能力如何):炒菜、作飯、洗衣服、賺錢

​ js世界裏面對象也是由這兩樣組成的:屬性和方法,不墨跡上個例子

2.如何定義一個對象

var girlFriend = {
      //屬性:
      hair:"long",
      eye:"big",
      hobby:"travel",
      //方法
      cook:function(){},
      wash:function(){}
 };

3.js的面向對象和其它面向對象不一樣之處

java等語言是典型的面向對象編程,特色是強大複雜,太特麼複雜,你們知道這件事就行。不知道建議你去看看typescript代碼,體會下。

js 是原型方式,簡單、靈活。聽不懂不要緊,先把這個例子記住,更常見的定義對象的方式。

//屬性加載構造函數上
function GirlFriend() {
      //屬性:
      hair:"long",
      eye:"big",
      hobby:"travel",
 }
 //方法加在原型上
 GrilFriend.prototype.cook = function(){};

先記住會用就好了後續的課程我會講什麼是原型,以及原型繼承等特色。

相關文章
相關標籤/搜索