如下: 複製代碼 代碼如下: function Student() { //定義類Student中的欄位,並賦予初值,但此欄位的存取權限是public this.studentNo = 's001'; this.studentName = '小明'; this.sex = '男'; //定義類Student中的方法updateStudentName ,用於修改studentName 值 this.updateStudentName = function(studentName) {
在JavaScript中實現繼承可以有多種方法,下面說兩種常見的。一,call 繼承,先看代碼: 先定義一個“人”類 複製代碼 代碼如下: //人類 Person=function(){ this.name="草泥馬"; this.eat=function(){ alert("我要吃飯"); } this.sleep=function(){ alert("我要睡覺"); } } 再定義一個學生類,讓它繼承於Person 複製代碼 代碼如下: //學生類
假如 我這樣定義: 複製代碼 代碼如下: function getDate(){.....} function getDate(date){.....} 那麼後一個方法將覆蓋前一個,雖然不報錯。 但是我們確實是可以實現重載的,如果你用過jQuery,你就會深有體會,比如$("#btn").val() 是擷取id為"btn"的按鈕的value值,而$("#btn").val("點我")則是給id為"btn"的按鈕賦值。 那麼JavaScript是怎麼實現(準確地講應該叫“類比”)的呢?。
其實很簡單,廢話少說,看了下面的代碼及注釋相信你就會一目瞭然! 複製代碼 代碼如下: //聲明類,就是一個方法,其實在JavaScript中,命名空間、類、成員.... 一切皆對象 MyClass =function(){ var _this=this; //私人變數 var aa="11"; //公開變數 this.bb="22"; //私人方法 function fun1(){ alert(aa); alert(_this.bb); } //私人方法 var fun2=function(){
上幾節講了 JavaScript 物件導向之命名空間 、 javascript 物件導向的JavaScript類 、 JavaScript 物件導向的之私人成員和公開成員 與 Javascript 物件導向之重載,大家可以先看上面的再繼續往下看。在JavaScript中實現繼承可以有多種方法,下面說兩種常見的。 一,call 繼承,先看代碼: 先定義一個“人”類 複製代碼 代碼如下: //人類 Person=function(){ this.name="草泥馬";
上幾節講了 JavaScript 物件導向之命名空間 、 javascript 物件導向的JavaScript類 與 JavaScript 物件導向的之私人成員和公開成員 ,大家可以先看上面的再繼續往下看。假如 我這樣定義: 複製代碼 代碼如下: function getDate(){.....} function getDate(date){.....} 那麼後一個方法將覆蓋前一個,雖然不報錯。 但是我們確實是可以實現重載的,如果你用過jQuery,你就會深有體會,比如$
在上一節面 JavaScript 物件導向之命名空間 中說了怎麼定義JavaScript命名空間,這一節來說下緊接著的一個概念——類。雖然JavaScript中沒有class關鍵字,但作為開發人員我們一定要有這個思想。在C#中類可以分為執行個體類和靜態類,JavaScript亦然。 一,定義執行個體類: 在上節中我定義了一個cnblogs.news的命名空間,現在就在此命名空間下定義一個名為Article類: 複製代碼 代碼如下:
在小項目中對於JavaScript使用,只要寫幾個function就行了。但在大型項目中,尤其是在開發追求良好的使用者體驗的網站中,如SNS,就會用到大量的JavaScrpt,有時JavaScript的工作量勝過了C#,這時寫一堆function,就會顯得很亂,雜亂無章,甚至會出現命名衝突,管理和維護起來都很麻煩。對於這種情況我們就需要使用物件導向的思想來開發JavaScript。那我們就這樣作罷: 對於一個項目,首先要有個命名空間。所以我們首先要做的是定義一個函數來註冊命名空間。代碼如下:
由於才疏學淺,我不得不將《Javascript 進階程式設計》中的部分內容摘抄過來,這些同時也算是我的讀書筆記吧。由於 Javascript 物件導向機制及其的重要,而且內容非常的繁多,在這裡就分篇章逐個介紹。 使用對象首先就是聲明它(內建的對象當然就不需要了)。該死的 Javascript 總是會讓我們死去很多的腦細胞,這篇文章主要說明下聲明 Javascript 類的幾種方法。 原廠模式
一,概述在Java語言中,我們可以定義自己的類,並根據這些類建立對象來使用,在Javascript中,我們也可以定義自己的類,例如定義User類、Hashtable類等等。目前在Javascript中,已經存在一些標準的類,例如Date、Array、RegExp、String、Math、Number等等,這為我們編程提供了許多方便。但對於複雜的用戶端程式而言,這些還遠遠不夠。與Java不同,Java2提供給我們的標準類很多,基本上滿足了我們的編程需求,但是Javascript提供的標準類很少,許
模式類型:原廠模式 模式說明:常用模式之一,用來動態建立對象 適用範圍:在運行期間需要在一系列可互換的子類中進行選擇的類 注意事項:介面的實現,從而使不同子類可以被同等的對待,恰當的使用原廠模式,但不要拘泥與形式,理解本質。 關鍵點:以 函數/類/子類 構建的選取器 本質:函數作為選取器的使用 一般使用形式: 作為獨立的選取器存在: 複製代碼 代碼如下: function FactoryMode(index){ switch(index){ case "index1" : return new
雖然現在慢慢減少了對jQuery的使用(項目上還是用,效率高點。平時基本不用了),希望從而減少對jQuery的依賴度。 但是這鏈式操作的方式實在吸引人(貌似現在不少新庫都採用了鏈式操作)。 新手無畏嘛,所以寫了以下代碼。主要是避免以後又忘了,呵呵。 複製代碼 代碼如下: window.k = function() { return new k.fn.init(arguments); } k.fn = k.prototype = { init:function() { this.length =
在查了大量的資料後,我總結了下面的三條規則,這三條規則,已經可以解決目前我所遇到的所有問題.規則0:函數本身是一個特殊類型,大多數時候,可以認為是一個變數。 複製代碼 代碼如下: function a() { alert(this); } 或者 var a = function() { alert(this); } 都可以認為是建立了一個變數,這個變數的值就是一個函數。 規則1:如果一個函數,是某個對象的key 值,那麼,this就指向這個對象。 這個規則很好理解: 複製代碼 代碼如下:
單體模式(singleton) 單體是在指令碼載入時建立的,能將一系列有關聯的變數和方法組織為一個邏輯單元,邏輯單元裡面的內容通過單一的變數進行訪問; 一個單體主要分為三部分 用於訪問內部資訊的入口變數(如:Sky) 屬性(如:nickName/age/timeInfo) 方法(如:sayHello) 基本結構 複製代碼 代碼如下: var Sky = { /* * 作用一,變數管理 */ nickName: "sky", age: "26", /* * 作用二,載入中初始設定變數 *
JavaScript之資訊的封裝 在編碼前,我們需要瞭解如下幾個術語;封裝:對內部資料的表現形式和實施細節進行隱藏; 私人屬性和方法:外界只能通過其公開的介面與其進行存取和互動 範圍:JavaScript中,只有函數具有範圍,函數內部定義的屬性和方法在外部無法訪問 特權方法:聲明在函數內部,能訪問函數內部變數(屬性)的方法,比較耗費記憶體; 複製代碼 代碼如下: function Person() { /* * 聲明私人的資料 * 暱稱,年齡,郵箱 */ var nickName, age,
1:建構函式法 [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行] 註解: 1:這裡定義了一個Dog對象(在javascript中,函數就是對象,這裡function Dog(name,weight) 同時也是建構函式),用new關鍵字建立了一個對象執行個體dog。 2:其中_name、_weight、_show、_sex為執行個體dog的屬性。可以通過:執行個體名.屬性名稱 或 執行個體名[“屬性名稱”]訪問執行個體屬性,即dog._name=dog["_name"]。 3
怎麼說呢?!就像是動物(組合對象)一樣,當它生下後代(葉對象)時,它的後代就有了某種功能(比如:挖洞,聽力好等等);也像是一棵樹,它有一個根(組合對象)然後是從這個棵樹向外冒出的其他枝杆(組合對象)以及從這些枝杆又向外長的葉子(葉對象)。換句話說,就是當祖先已經有了,那麼只要從這個祖先衍生出來的其他孩子(包括這個祖先下的其他組合對象)已經就具備了某種功能,看上去貌似又有些像是繼承。“組合模式”在組合對象的層次體系中有兩種類型的對象:葉對象和組合對象。組合模式擅長於對大批對象進行操作。
js的單例寫法 JS單例模式 你是?(單例) 你是?(普通) [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]loop.js是一個單例模式的js類://一開始就用new 無名類的方式建立。這樣就實現了單例的功能。var loop = new (function(){ // 外部公用函數 // 無限迴圈的操作 this.setloop = &
這次我們直接看例子: 複製代碼 代碼如下: /***定義靜態類***/ var StaticClass = (function(){ var Return = { Property: "Test Static Property", //公有屬性 Method: function(){ //公有方法 alert(_Field); //調用私用欄位 privateMethod(); //調用私用方法 } }; //定義返回的公有對象 var _Field = "Test Static Field";
今天所要說的就是,如何在Javascript裡寫類與靜態類,這是本人一慣用的方法,你也可以有更為方便的,也可以發發評論跟大家交流交流。 首先說說類,在一個類裡我們會有以下的幾個特徵: 1. 公有方法 2. 私人方法 3. 屬性 4. 私人變數 5. 解構函式 我們直接看一個例子: 類例子 複製代碼 代碼如下: /***定義類***/ var Class = function(){ var _self = this;//把本身引用負值到一變數上 var _Field = "Test Field";