Time of Update: 2017-01-19
介紹命令模式(Command)的定義是:用於將一個請求封裝成一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或者記錄請求日誌,以及執行可撤銷的操作。也就是說改模式旨在將函數的調用、請求和操作封裝成一個單一的對象,然後對這個對象進行一系列的處理。此外,可以通過調用實現具體函數的對象來解耦命令對象與接收對象。本文我們來通過車輛購買程式來展示這個模式,首先定義車輛購買的具體操作類:複製代碼 代碼如下:$(function () { var
Time of Update: 2017-01-19
介紹代理,顧名思義就是協助別人做事,GoF對代理模式的定義如下:代理模式(Proxy),為其他對象提供一種代理以控制對這個對象的訪問。代理模式使得代理對象控制具體對象的引用。代理幾乎可以是任何對象:檔案,資源,記憶體中的對象,或者是一些難以複製的東西。本文我們來舉一個簡單的例子,假如dudu要送優酪乳小妹玫瑰花,卻不知道她的連絡方式或者不好意思,想委託大叔去送這些玫瑰,那大叔就是個代理(其實挺好的,可以扣幾朵給媳婦),那我們如何來做呢?複製代碼 代碼如下:// 先聲明美女對象var girl =
Time of Update: 2017-01-19
在上一篇部落格介紹了下列表,列表是最簡單的一種結構,但是如果要處理一些比較複雜的結構,列表顯得太簡陋了,所以我們需要某種和列表類似但是更複雜的資料結構---棧。棧是一種高效的資料結構,因為資料只能在棧頂添加或刪除,所以這樣操作很快,而且容易實現。一:對棧的操作。棧是一種特殊的列表,棧內的元素只能通過列表的一端訪問,這一端陳為棧頂。比如餐館裡面洗盤子,只能先洗最上面的盤子,盤子洗完後,也只能螺到這一摞盤子的最上面。棧被稱為
Time of Update: 2017-01-19
前言:在日常生活中,人們經常要使用列表,比如我們有時候要去購物時,為了購物時東西要買全,我們可以在去之前,列下要買的東西,這就要用的列表了,或者我們小時候上學那段時間,每次考完試後,學校都會列出這次考試成績前十名的同學的排名及成績單,等等這些都是列表的列子。我們電腦內也在使用列表,那麼列表適合使用在什麼地方呢?不適合使用在什麼地方呢?適合使用在:當列表的元素不是很多的情況下,可以使用列表,因為對列表中的元素尋找或者排序時,效率還算非常高,反之:如果列表元素非常多的情況下,就不適合使用列表了。一:
Time of Update: 2017-01-19
關鍵字function用來定義函數。複製代碼 代碼如下://函式宣告式定義:function funcname([arg1[,args[...,argn]]]){ statements }//函數運算式定義:var funcname = function ([arg1[,args[...,argn]]]){ statements
Time of Update: 2017-01-19
this關鍵字在javascript中是非常強大的,但是如果你不清楚它是怎麼工作的就很難使用它.複製代碼 代碼如下:function dosomething(){ this.style.color="#fff"; }
Time of Update: 2017-01-19
從後端資料庫讀取時間時,經常會把整個日期年月日包括時分秒都取到,如2015-1-28 14:56:00,但是一般的我們只需要前面的年月日就行了.一個簡單的方法,直接用split(" ")[0]就可以以空格截取,獲得截取的第一段,就是我們要的年月日.現在來說說用Regex怎麼實現.思路:擷取到字串中的空格,然後把空格及空格後的字元全部替換為空白.擷取空格的正則為\s實踐:複製代碼 代碼如下:var date = "2015-12-26
Time of Update: 2017-01-19
本文執行個體講述了JavaScript將Web頁面內容匯出到Word及Excel的方法。分享給大家供大家參考。具體實現方法如下:<HTML><HEAD> <title>WEB頁面匯出為EXCEL文檔的方法 </title></HEAD><body><BR><table id = "PrintA" width="100%" border="1" cellspacing="0" cellpadding="0"
Time of Update: 2017-01-19
本文執行個體講述了javascript上下方向鍵控製表格行選中並高亮顯示的方法。分享給大家供大家參考。具體實現方法如下:<style>tr.highlight { background:#08246B; color:white;}</style><table border="1" width="70%" id="ice"> <tr onClick="selectTR();return false;">
Time of Update: 2017-01-19
本文執行個體講述了javascript轉換日期文字為Date日期對象的方法。分享給大家供大家參考。具體如下:這裡實現把一個日期文字如“2014-4-28 12:31:45”轉換為Date對象:方法一:複製代碼 代碼如下:var strArray=str.split(" "); var strDate=strArray[0].split("-"); var strTime=strArray[1].split(":"); var a=new
Time of Update: 2017-01-19
本文執行個體講述了javascript擷取元素離文檔各邊距離的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:function getDistance(obj) { if (!obj instanceof jQuery) { obj = $(obj); } var distance = {}; distance.top =
Time of Update: 2017-01-19
本文執行個體分析了JavaScript函數範圍鏈。分享給大家供大家參考。具體分析如下:範圍鏈:JavaScript的每個函數function都有自己的範圍,使用Active Object(簡稱AO)使用中的物件來儲存,在相互嵌套的函數中形成了範圍鏈,如下圖所示:範圍鏈就是從裡到外的AO鏈變數的尋找:函數fn3中使用的變數,如在fn3範圍內尋找不到,則往外層fn2範圍尋找,以此類推,直到全域對象window代碼示範如下:var c = 5; function t1(){ var d = 6;
Time of Update: 2017-01-19
本文執行個體講述了JavaScript匿名函數用法。分享給大家供大家參考。具體如下:一、定義一個函數在JavaScript中,可以通過“函式宣告”和“函數運算式”來定義一個函數,比如1、通過“函式宣告”來定義一個函數function t1(){}2、通過“函數運算式”來定義一個函數t2 = function(){}但是兩種方式定義函數,效果是不同的t1是函式宣告,‘詞法分析'時,AO.t1 =
Time of Update: 2017-01-19
小A是某個創業團隊的前端工程師,負責編寫項目的Javascript程式。全域變數衝突根據自己的經驗,小A先把一些常用的功能抽出來,寫成函數放到一個公用檔案base.js中:複製代碼 代碼如下:var _ = { $: function(id) { return document.getElementById(id); }, getCookie: function(key) { ... },
Time of Update: 2017-01-19
本文執行個體講述了JavaScript自訂數組排序方法。分享給大家供大家參考。具體分析如下:Array中有內建的排序功能,這個使用起來比較方便,我們有一點必須清楚,就是排序的依據,如果sort不傳入參數的話,那就是按照字元編碼(Unicode編碼)的順序排序。var a=["3","2","1"]; console.log(a[0].charCodeAt(0)); // 51 console.log(a[1].charCodeAt(0)); // 50
Time of Update: 2017-01-19
JavaScript設計模式的作用是提高代碼的重用性,可讀性,使代碼更容易的維護和擴充在javascript中,函數是一類對象,這表示他可以作為參數傳遞給其他函數;此外,函數還可以提供範圍。建立函數的文法命名函數運算式複製代碼 代碼如下://命名函數運算式var add = function add(a,b){ return a+b;};函數運算式複製代碼 代碼如下://又名匿名函數var add =
Time of Update: 2017-01-19
js繼承的概念js裡常用的如下兩種繼承方式:原型鏈繼承(對象間的繼承)類式繼承(建構函式間的繼承)由於js不像java那樣是真正物件導向的語言,js是基於對象的,它沒有類的概念。所以,要想實現繼承,可以用js的原型prototype機制或者用apply和call方法去實現在物件導向的語言中,我們使用類來建立一個自訂對象。然而js中所有事物都是對象,那麼用什麼辦法來建立自訂對象呢?這就需要用到js的原型:我們可以簡單的把prototype看做是一個模版,新建立的自訂對象都是這個模版(prototy
Time of Update: 2017-01-19
什麼是模式前陣子準備期末考試,勞神又傷身的,實在閑不得空來更新文章,今天和大家說說javascript中的設計模式。首先呢,我們需要知道的是:模式是一種可複用的解決方案,而反模式呢就是針對某個問題的不良解決方案。js反模式常見例子1.向setTimeout和setInterval傳遞字串,而不是函數,這會觸發eval()的內部使用。2.在全域上下文中定義大量的變數汙染全域命名空間3.修改Object類的原型4.以內聯形式使用js,嵌入在HTML檔案中的js代碼是無法包含在外部單元測試工具中的。5
Time of Update: 2017-01-19
代碼很簡單,實現的功能卻很實用,直接奉上代碼CSS:複製代碼 代碼如下:<meta charset="utf-8" /><title>Pull to Refresh</title><meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;"
Time of Update: 2017-01-19
計時器基本格式:複製代碼 代碼如下:setInterval(function(){代碼},1000);/*說明:1.setInterval 會返回一個計時器ID值 可以這樣接收。var setId = setInterval(....); 2.接收setId的目的是為了清空計時器。 clearTimeout(setId);*/例如一次性的計時器格式:複製代碼