js物件導向程式設計體會

2021-07-25 19:25:48 字數 1807 閱讀 4626

物件導向程式設計在現在的服務端應該是一種應用很廣泛的程式設計思想,通過例項化物件呼叫屬性或者方法,減少了**的冗餘量,結構也比較清晰。現在談一談我對前端js的物件導向程式設計的一些理解。

我們現在的做web應用,前端的業務處理幾乎全是在js的基礎上完成的,可能乙個專案會包含很多開發人員編寫的js檔案包含進去,因為我們就要注意函式名的唯一性和全域性變數的使用,防止自己寫的函式或宣告的變數會和其他同事編寫的js檔案發生衝突,產生意想不到的bug。解決方法有很多,比如寫匿名函式,封裝成外掛程式等等。我這裡想介紹的js物件導向程式設計,這雖然是js語言的一種程式設計模式,但是物件導向在一定程度上解決了不同js檔案內函式和變數之間的衝突。

首先,介紹幾個基本概念:

ecma關於

物件

的定義是:」無序屬性的集合,其屬性可以包含基本值、物件或者函式。「

物件的每個屬性或方法都有乙個名字,而每個名字都對映到

乙個值。

在現實生活中,相似的物件之間往往都有一些共同的組成特徵。類,實際上是物件的設計藍圖或者製作配方。我們能基於相同的類建立出許多不同的

物件,這些物件又會含有各自的屬性和方法。

封裝主要用於闡述物件中所包含(或封裝的內容),它通常由兩部分組成:

相關的資料(用於儲存屬性)

基於這些資料所能做的事(所能呼叫的方法)

實踐1:物件定義及賦予物件屬性

假設我們現在想要封裝乙個js的類,功能是可以把我通過類名選中的元素為它快取乙個資料,方便我以後呼叫,這個類名就叫cachedom吧,從最基本的開始做。

第一步.物件的定義:

var cachedom = function(clsname){};
物件建立好之後,根據功能,在使用這個類時需要傳入乙個我們需要快取資料的dom元素的類名,那麼function裡面的形參就需要乙個類名的引數;

var cachedom = function(clsname){};
基礎的物件宣告好之後,接下來要定義一些類內部的變數了,首選,我們需要取得類名,然後通過類名篩選得到jquery或者dom物件,接著為得到的物件快取資料;

第二步.定義屬性值:

根據功能,屬性值的定義主要說明了類中通用的一些資料,就本案例來說,cachedom類中需要的屬性有:1.選中的jquery或dom物件,這是根據類名獲取到的;功能簡單所以只有這乙個屬性,就寫作obj

var cachedom = function(clsname);
第三步.定義類中的方法:

這個類的方法就是快取資料了,這裡將乙個知識點,js中的function也是一種屬性,在本例項中我們的方法是定義在cachedom這個物件的屬性中,給快取方法起個名字,就叫做tocache

var cachedom = function(clsname);

cachedom.prototype

};

第四步.方法的實現:

執行順序,1.取得類名;2.通過類名取到物件;3.將物件傳入函式中快取資料,繼續將快取方法補充完整

var cachedom = function(clsname);

cachedom.prototype

};

第五步.類的例項化:

var cacheobj=new cachedom('classname');//在外部為cachedom類例項化乙個cacheobj物件,同時傳入類名,之後cachedom類就會自動給指定物件快取資料

JS物件導向程式設計 物件

一般面向過程的寫法都是寫很多function,壞處 1.復用不好 2.函式名稱容易重複衝突 下面介紹物件導向的寫法 在js中每個函式function都是乙個物件。比如,下面這個就是乙個物件,我們在使用的時候就可以當作物件來使用。function helloworld 使用下面測試函式 呼叫該函式就會...

js物件導向程式設計

js物件導向程式設計 js使用建構函式作為物件的模板 var vehicle function 生成物件例項 var v new vehicle v.price 1000 傳引數的建構函式 var vehicle function value var v new vehicle 500 protot...

js物件導向程式設計

1.直接建立物件 集中例項化問題 2.工廠模式 物件識別問題 3.建構函式模式 例項化物件的方法在每個例項上都要建立一遍 建構函式模式 function student name var student1 new student 張三 每個例項物件對應乙個引用,所以例項化物件時,所有屬性與方法都會重...