1. 程式人生 > >js面向對象篇(一)

js面向對象篇(一)

為什麽 我認 多態 是什麽 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面向對象篇(一)