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
當寫js代碼的時候,一個校正工具可以協助我避免愚蠢的錯誤。儘管我有許多年的經驗,但是我仍然有變數命名不正確、產生語法錯誤以及忘記正確處理錯
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
本文記錄下JS中產生標示符方式的演變,從ES5到ES6,ES5及其之前是一種方式,只包含兩種聲明(var/function),ES6則增加了一些產生標識符的關鍵字,如 let、const、class。 一、ES5時代 var function我們知道 JS 不象其它語言 Java、Ruby等,它用來命名變數的只有關鍵字 var,不論何種類型資料都用 var 聲明,當然弱類型並不代表該語言沒有類型,它的類型在運行時(
Time of Update: 2017-02-28
說起運算子,基本上各類程式設計語言中都會涉及,使用方法大同小異。今天在這裡以javascript做簡單的整理。 總得來說運算子還是比較的多,大致可以分為以下幾種類型: 一元運算子 位元運算符 布林運算子 乘性運算子 加性運算子 關係運算子 等性運算子 條件運算子 賦值運算子
Time of Update: 2017-02-28
摩爾斯電碼是一種時通時斷的訊號代碼,通過不同的排列順序來表達不同的英文字母、數字和標點符號,是由美國人薩繆爾·摩爾斯在1836年發明。每一個字元(字母或數字)對應不同的序列(由點和劃組成)。一般來說,任何一種能把書面字元用可變長度的訊號表示的編碼方式都可以稱為摩爾斯電碼。但現在這一術語只用來特指兩種表示英語字母和符號的摩爾斯電碼:美式摩爾斯電碼和國際摩爾斯電碼。下面內容僅針對國際摩爾斯電碼。字母、數字、標點、特殊字元與摩斯碼對照表字母字母 摩斯碼 字母 摩斯碼 字母 摩斯碼 字母
Time of Update: 2017-02-28
首先,你得知道 jQuery.Deferred 的大致用法,然後,我們進入正題吧:庫代碼:/*! * 多線程非同步隊列 * 依賴 jQuery 1.8+ (如果你用的是 1.6或1.7, 只要將源碼中的 then方法替換為pipe方法 即可) *//** * @n {Number} 正整數, 線程數量 */function Queue (n) { n = parseInt(n 1,
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