Time of Update: 2017-01-19
請看源碼: 複製代碼 代碼如下: function clone(o) { var F = function(){}; F.prototype = o; return new F(); } 首先看ext(4.1的1896行開始)的原型式繼承。 複製代碼 代碼如下: var TemplateClass = function(){}; var ExtObject = Ext.Object = { chain: function (object) { TemplateClass.prototype =
Time of Update: 2017-01-19
1、每個函數都包含兩個非繼承而來的方法:apply()和call()。 2、他們的用途相同,都是在特定的範圍中調用函數。 3、接收參數方面不同,apply()接收兩個參數,一個是函數啟動並執行範圍(this),另一個是參數數組。call()方法第一個參數與apply()方法相同,但傳遞給函數的參數必須列舉出來。 例1: 複製代碼 代碼如下: window.firstName = "diz"; window.lastName = "song"; var myObject = {
Time of Update: 2017-01-19
javascript操作cookie簡單版本 複製代碼 代碼如下: function setCookie(name, value, iDay) { var oDate = new Date(); oDate.setDate(oDate.getDate() + iDay); document.cookie = name+'='+value+';expires='+oDate; } function getCookie(name) { var arr = document.cookie.split(
Time of Update: 2017-01-19
主要兩個部分,一、是滾動內容部分;二、JS的滾動代碼部分,也只有兩句話。 一、傳統的滾動代碼 用Javascript實現新聞內容的水平滾動! [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行] 傳統的滾動代碼應用效果比較單一,而且經常還存在瀏覽器的相容性問題,比如在FIREFOX上效果就會出現marquee的特效無效的問題。 二、Javascript實現的滾動效果 用Javascript實現新聞內容的水平滾動1 //div標籤中的寬度width等參數可以自行調節
Time of Update: 2017-01-19
調用介面: 複製代碼 代碼如下: /** * @param elem {HTMLElement} 執行動畫的HTML元素 * @param params {JSON} 動畫執行過過程中需要修改的HTML 屬性 * @param duration {Number} 可選,動畫執行時間,單位毫秒 * @param easing {String} 可選,動畫執行的方式,緩入easeIn、緩出easeOut * @param callback {Function} 可選,動畫執行完成時的回呼函數 * @
Time of Update: 2017-01-19
比如要在一個列表中利用ajax插入一個li的時候,我會直接把資料跟html標籤拼接成一句完整的html,然後插入到ul中。無論資料是從伺服器端拿回的,或者是從使用者的input輸入中拿到的——無論哪種方法都是一樣。
Time of Update: 2017-01-19
在項目中需要快速檢測瀏覽器是否支援某CSS3特性,比如檢測是否支援“transform”,然後我的布局會有兩種完全不同的版式。當然除開本文介紹的這種快速方法,還有一種更有名和更通用的方法,那就是modernizr,運行指令碼之後它會在html的class上加上瀏覽器支援的所有特性的列表。優點:js是可配置的,不需要的特性檢測可以在配置指令碼中去掉基於特性檢測js庫簡單好用除此之外還有一種不太好的方法,那就是判斷瀏覽器的UA,不好的原因是UA可能會偽造,而且版本判斷繁瑣,還有不穩定。優點:效能可能
Time of Update: 2017-01-19
譯者注:本文要講的是ECMAScript 6中的知識點,如果你連ES5都不瞭解的話.我得說,你已經很落後了.CSS4,HTML6,甚至ES7
Time of Update: 2017-01-19
譯者注:前兩天在看ES5的時候順便出了一道題,今天看到這篇文章,剛好解釋的很清楚,就翻譯了一下.在JavaScript中,主要有三種方法能讓任意值轉換為字串.本文講解了每種方法以及各自的優缺點.1.轉換字串的三種方法 這三種將value轉換為字串的方法是: 1.value.toString() 2."" + value 3.String(value) 第一種方法存在的問題是,它不能把null和undefined轉換為字串.還有第二種和第三種方法,這兩種方法的效果基本一樣.
Time of Update: 2017-01-19
1.NaN 在JavaScript中,NaN代表了“not a number”.主要在解析字串出現錯誤時會返回這個值: 複製代碼 代碼如下: > Number("xyz") NaNNaN 的名字是“not a number”,不過也可以說是not not a number: 複製代碼 代碼如下: > NaN !== NaN true 它是一個數字!類型為"number" 複製代碼 代碼如下: > typeof NaN 'number' 1.1 檢測NaN
Time of Update: 2017-01-19
1.檢測NaN 在數學上,任意值x總是與自己相等: x = x 但這條規則並不適用於 === 和 NaN: 複製代碼 代碼如下: > NaN === NaN false 導致的結果就是,你不能通過使用indexOf方法在一個包含了NaN的數組中找到這個NaN,因為該方法在內部是使用了===來判斷一個元素是否和參數中指定的值相等的: 複製代碼 代碼如下: > [ NaN ].indexOf(NaN) -1 譯者注:switch語句同理 複製代碼 代碼如下: switch (NaN)
Time of Update: 2017-01-19
本文主要講了JavaScript中科裡化和反科裡化this的方法.話題來自於Brendan Eich(JavaScript之父)的一個tweet.1.反科裡化(Uncurrying)this 反科裡化this的意思是:把一個簽名如下的方法: obj.foo(arg1, arg2)轉換成另外一個簽名如下的函數: foo(obj, arg1, arg2)想要知道這麼做有什麼用,我們首先得瞭解一下通用方法. 2.通用方法(Generic methods)
Time of Update: 2017-01-19
複製代碼 代碼如下: function setPage(opt){ if(!opt.pageDivId || opt.allPageNum < opt.curpageNum || opt.allPageNum < opt.showPageNum){return false}; var allPageNum = opt.allPageNum; //總的頁數 var showPageNum = opt.showPageNum; //顯示的頁數 var curpageNum =
Time of Update: 2017-01-19
複製代碼 代碼如下: window.onload = function(){ var oDIv = document.getElementById('progressBox'); var sytleElemt = window.getComputedStyle(oDIv); for(var i=0;i<sytleElemt.length;i++){ if( typeof sytleElemt[sytleElemt[i]] != 'undefined' &&
Time of Update: 2017-01-19
1.稀疏數組 建立一個指定長度的稀疏數組很簡單: 複製代碼 代碼如下: > var a = new Array(3); > a [ , , ] > a.length 3 > a[0] undefined 當你遍曆它時,你會發現,它並沒有元素.JavaScript會跳過這些縫隙. 複製代碼 代碼如下: > a.forEach(function (x, i) { console.log(i+". "+x) }); > a.map(function (x, i)
Time of Update: 2017-01-19
1.語句和運算式 JavaScript中的運算式和語句是有區別的.一個運算式會產生一個值,它可以放在任何需要一個值的地方,比如,作為一個函數調用的參數.下面的每行代碼都是一個運算式: myvar3 + xmyfunc("a",
Time of Update: 2017-01-19
首先不同瀏覽器中event位置屬性的分析: 1. IE的event.x,event.y是以事件觸發元素的父元素外界為參考點(不包括滾動距離) 2. Firefox的event.pageX,event.pageY是以body元素為參考點(包括滾動距離) 3. event.clientX,event.clientY以瀏覽器左上方為參考點(不包括滾動距離) 4.
Time of Update: 2017-01-19
一、IE中的XML DOM支援 IE對XML的支援是基於ActiveX的MSXML庫。 1、DOM建立 對每個新版本的MSXML,都會建立出不同的XML DOM對象,所以盡量選擇新的XML DOM版本。 2、載入XML 載入XML分兩種,即: 載入XML字串:loadXML(xml字串)
Time of Update: 2017-01-19
一、問題的提出 我們先來看看下面幾段代碼,要注意的是,以下代碼不要在瀏覽器的開發人員工具(如FireBug、Chrome Developer tool)中運行,原因後面會說明: 為什麼我們可以刪除對象的屬性: 複製代碼 代碼如下: var o = { x: 1 }; delete o.x; // true o.x; // undefined 但不以刪除像這樣聲明的變數: 複製代碼 代碼如下: var x = 1; delete x; // false x; // 1
Time of Update: 2017-01-19
1.1.1 摘要 相信有C++、C#或Java等編程經驗的各位,對於this關鍵字再熟悉不過了。由於Javascript是一種物件導向的程式設計語言,它和C++、C#或Java一樣都包含this關鍵字,接下來我們將向大家介紹Javascript中的this關鍵字。 本文目錄 •全域代碼中的this •函數中的this •參考型別 •函數調用以及非參考型別 •參考型別以及this的null值