Time of Update: 2017-02-28
整理一下js物件導向中的封裝和繼承。1.封裝 js中封裝有很多種實現方式,這裡列出常用的幾種。1.1 原始模式產生對象 直接將我們的成員寫入對象中,用函數返回。 缺點:很難看出是一個模式出來的執行個體。代碼:function Stu(name, score) { return
Time of Update: 2017-02-28
其實一開始編js沒怎麼用過對象,一般都用func,func,func···但是用多了,感覺代碼一點都不美觀,還要這裡包一個函數,那裡包一個 函數,或者一直都是函數調用,不好看,而且一些重用的都要重寫的話就很麻煩(不好意思,對於我這種新手,開始還是一般用func比較高效率···)。所以
Time of Update: 2017-02-28
當我們用js請求RESTful Web Service的時候,通常會出現跨域無法訪問的問題,也就是無法正常得到我們要的值。jsonp是個解決問題的方法。但是,我們希望訪問RESTful Web Service就像一般的ajax方法一樣,不用每個都去搞一個jsonp和callback。這就需要我們在服務端進行一些設定,下面我用一個簡單的 Filter來進行說明,其他比較複雜的情況根據自己的需求進行改動。import java.io.IOException;import
Time of Update: 2017-02-28
狀態機器什麼叫狀態機器(Finite State
Time of Update: 2017-02-28
在JavaScripot函數閉包的定義中,一般都有一個outer 函數,一個inner函數。那麼“閉包”到底是指outer函數呢,還是指inner函數?從官方定義來看,並不清楚:A closure is a combination of a code block and data of a context in which this code block
Time of Update: 2017-02-28
我的上篇部落格標題不對,造成一些誤解。我認為部落格的宗旨不是背教科書,而是分享研發心得。我的上篇標題因該改成“JavaScript 閉包的一個議題:它對outer scope 的影響”,因為我沒有嚴格地去分析閉包的定義,而是分析了實現閉包的其中一個語義問題。講清楚閉包是件麻煩事,我也沒有看到什麼關於JavaScript的權威性著作(比如像C++語言有 Bjarne Stroustrup的C++ programming
Time of Update: 2017-02-28
prototype模式通過執行個體對象指定需要建立的類型,這與factory method模式有本質不同,factory method模式是通過類的繼承定義不同子類來達到建立不同類型對象的目的,屬於類模式,prototype模式通過調用組合的對象成員產生不同類型的對象執行個體,屬於對象模式。由於這個特性,prototype具有以下適用場合:· 需要運行時確定執行個體化的類時,比如動態裝載庫時· 避免建立過多子類時。子類太多永遠是不受歡迎的,在factory
Time of Update: 2017-02-28
什麼是「超大整數」?JavaScript 採用 IEEE754標準 中的浮點數演算法來表示數字 Number。我也沒花時間去詳細瞭解 IEEE754標準 ,但對於處理超大整數,瞭解下面的幾個知識點就足夠了。首先,JavaScript 實際上可以表示的最大數是: 1.7976931348623157e+308Number.MAX_VALUE; //
Time of Update: 2017-02-28
方式一、使用取餘運算子判斷任何整數都會被1整除,即餘數是0。利用這個規則來判斷是否是整數。function isInteger(obj) { return obj%1 === 0}isInteger(3) // trueisInteger(3.3) // false 以上輸出可以看出這個函數挺好用,但對於字串和某些特殊值顯得力不從心isInteger('') // trueisInteger('3') // trueisInteger(true) //
Time of Update: 2017-02-28
今天介紹如何規範地使用模組。(接上文)七、模組的規範先想一想,為什麼模組很重要?因為有了模組,我們就可以更方便地使用別人的代碼,想要什麼功能,就載入什麼模組。但是,這樣做有一個前提,那就是大家必須以同樣的方式編寫模組,否則你有你的寫法,我有我的寫法,豈不是亂了套!考慮到Javascript模組現在還沒有官方規範,這一點就更重要了。目前,通行的Javascript模組規範共有兩種:CommonJS和AMD。我主要介紹AMD,但是要先從CommonJS講起。八、CommonJS2009年,美國程式員
Time of Update: 2017-02-28
今天介紹如何將它們用於實戰。我採用的是一個非常流行的庫require.js。一、為什麼要用require.js?最早的時候,所有Javascript代碼都寫在一個檔案裡面,只要載入這一個檔案就夠了。後來,代碼越來越多,一個檔案不夠了,必須分成多個檔案,依次載入。下面的網頁代碼,相信很多人都見過。 <script src="1.js"></script><script src="2.js"></script>
Time of Update: 2017-02-28
你可能知道,Javascript語言的執行環境是"單線程"(single thread)。所謂"單線程",就是指一次只能完成一件任務。如果有多個任務,就必須排隊,前面一個任務完成,再執行後面一個任務,以此類推。這種模式的好處是實現起來比較簡單,執行環境相對單純;壞處是只要有一個任務耗時很長,後面的任務都必須排隊等著,會拖延整個程式的執行。常見的瀏
Time of Update: 2017-02-28
JavaScript的"並行存取模型"是基於事件迴圈的.這個並行存取模型有別與Java的多線程,javascript的並發是單線程的.我簡單的畫了一個 javascript 的執行圖,我們通過圖,逐步分析.棧函數調用時所用的執行環境棧當 js方法被調用時,會進入一個執行環境(execution context),如果有另外一個方法被調用了(或者自身遞迴調用),會建立一個新的執行環境,並且代碼的執行會進入到這個新的執行環境.函數調用返回的 時候重新回到原來的執行環境. 由此,
Time of Update: 2017-02-28
在談javascript的淺複製和深複製之前,我們有必要在來討論下js的資料類型。我們都知道有 Number,Boolean,String,Null,Undefined,Object五種類型。而Object又包含Function,Array 和Object自身。前面的五種類型叫做基本類型,而Object是參考型別。可能有人就要問,為什麼要分基本類型和參考型別呢?後面你就會明白的。
Time of Update: 2017-02-28
對於JavaScript的繼承和原型鏈,雖然之前自己看了書也聽了session,但還是一直覺得雲裡霧裡,不禁感歎JavaScript真是一門神奇的語言。這次經過Sponsor的一對一輔導和自己回來後反覆思考,總算覺得把其中的精妙領悟一二了。1. JavaScript建立對象在物件導向語言中,通常通過定義類然後再進行執行個體化來建立多個具有相同屬性和方法的對象。但是在JavaScript中並沒有類的概念,不過
Time of Update: 2017-02-28
字串是javascript編程中不可或缺的元素,掌握字串常用的方法也是我們學習過程中的必經之路,下面我們總結一些最常用的的字串方法。string.charAt(postion)charAt方法返回在string中的position位置處的字元。如果position小於0或者大於字串的長度,返回Null 字元串。由於js沒有字元類型,返回的仍為一個字串 var name="deng"; var a=name.charAt(1);
Time of Update: 2017-02-28
在javascript的基礎編程中,數組是我們最常遇到的,那麼數組的一些常用方法也是我們必須要掌握的,下面我們總結一下數組中常用的方法。toString()和valueOf()方法toString()方法,就是將數組拼接成字串返回,預設情況下以逗號分隔。valueOf返回數組本身。1var a=["a3","bs","c1","d鄧"]; 2var c=a.toString(); 3var
Time of Update: 2017-02-28
在大家看到我的這篇文章時,我正在拜讀劉未鵬先生寫的《暗時間》,如果你有幸看到我的這篇部落格,我希望你也可以看看這本書。好了閑話少敘,進入正題。在物件導向的Collection中處處體現泛型和多態的思想,且慢,由於泛型和多態兩者之間本身就有一定的相似性,讓我們先認清楚泛型和多態之後再進入話題。多態是物件導向最基本的概念之一,即要模糊父類和之類之間的區別,如何模糊呢?我們再來舉網路上的那個例子:class Aninal{ 叫;}//叫是動物的一個方法class 貓 extend
Time of Update: 2017-02-28
前段時間公司做了個比較大的項目,需要用到ocx控制項,我廠大部分項目都採用C#.net,而winform程式條用ocx控制項介面是相對簡單的,但是javascript調用ocx介面,卻和winform的用法有些不同,其實真捉摸下,也就能發現:差別不大。筆者此次主要闡述在項目中用javascript調用ocx控制項介面,也就是activeX控制項時所遇到的問題及其解決方案。winform用法不在此篇中闡述。調用activeX外掛程式前,我們要做一些準備工作,我們介紹兩種方案:1.使用regsvr3
Time of Update: 2017-02-28
模組化編程是一種非常常見Javascript編程模式。它一般來說可以使得代碼更易於理解,但是有許多優秀的實踐還沒有廣為人知。在這篇文章中,我將會回顧一下js模組化編程的基礎,並且將會講到一些真的非常值得一提的進階話題,包括一個我認為是我自創的模式。 基礎我們首先簡單地概述一下,自從三年前Eric