js面向對象篇(一)
阿新 • • 發佈:2017-11-26
為什麽 我認 多態 是什麽 script 寫法 所有 div 對象
Javascript是一種基於對象(object-based)的語言,你遇到的所有東西幾乎都是對象。但是,它又不是一種真正的面向對象編程(OOP)語言,因為它的語法中沒有class
(類)。 ----摘自阮一峰老師的博客
當然現在的es6中已經有了class,去聲明一個類,讓js看上去更像是一個面對對象編程的語言
那麽問題來了什麽是面向對象呢?其實js是有很多種寫法的,我們平時一般寫的程序都是面向過程式的,就像這樣
var a = 1; function show(opt){ alert(opt); } show(123); for(var i=1;i<10;i++){// }
其實面向對象的程序,我們也是經常在用,就像這樣
var arr = new Array(); //這是一個數組對象,當然我們平時一般都寫成[]的形式,其實是一樣的,[]只不過是new Array()簡寫罷了 var date = new Date(); //這是一個日期對象 //對象上有屬性和方法 arr.length //對象的屬性 arr.push() //對象的方法 arr.sort() date.getDate() //對象的方法
以上,就是我們經常用到的面向對象的程序的用法,只是我們只拿來用,而不知道其中所實現的原理罷了,我們稱之為系統對象
面向對象不過是另一種編程的方式而已,那麽為什麽要用面向對象編程呢,那是因為它相對於我們面向過程編程的寫法,有它的一些優點
1,抽象:抓住核心問題,換言之就是就是把相同的東西抽離出來
2,封裝:只能通過對象來訪問方法或者屬性,也就是有一定的規範,而不是什麽情況下都可以使用的,就是防止我們濫用一些方法或者屬性
3,繼承:從已有的對象中繼承出一個新的對象,我認為這是最重要的,可以很大程度的復用代碼,提交性能,而又不相互影響
4,多態:多對象的不同形態,也就是在不同的場景下,同一個接口可能會有不同的作用,有不同的形態,也是可以達到復用代碼的目的,當然因為js是弱類型語言,所以,可能不太明顯
js面向對象篇(一)