Time of Update: 2018-12-08
在Javascript裡,setTimeout和setInterval接收第一個參數是一個字串或者一個函數,當在一個對象裡面用setTimeout延時調用該對象的方法時 複製代碼 代碼如下:function obj() { this.fn = function() { alert("ok"); console.log(this); setTimeout(this.fn, 1000);//直接使用this引用當前對象 } } var o = new obj(); o.fn();
Time of Update: 2018-12-08
本文分上下兩部分,上部講基本模式(basic patterns):完全暴露法,底線標記法和使用閉包;下部講進階模式(Advanced Patterns),如何?靜態方法和屬性,常量還有其他一些知識點。 封裝是物件導向語言很基本也是很有用的特性,雖然javascript也可以稱的上是物件導向語言,但他對封裝的支援並不是很好,不像其他語言,只要使用private、protected就可以實現。但這並不是說就沒有辦法了,下面我就介紹下如何在javascript中實現封裝。
Time of Update: 2018-12-08
具體題目是這樣的: 從1--9中選取N個數字,組成不重複的N位元,從小到大進行編號,當輸入其中任何一個數M時,能找出該數字對應 的編號。如 N=3,M=213. 輸出:[123(1) , 132(2) , 213(3) , 231(4) , 312(5) , 321(6)]--->X=2
Time of Update: 2018-12-08
經過自己一晚上嘗試,貌似找到了一個方法。 現在腦袋還糊塗,先記下來,以後再分析。 複製代碼 代碼如下:// 找到子項目在父元素中的相對位置 function getElementTop(element){ var el = (typeof element == "string") ? document.getElementById(element) : element; if (el.parentNode === null || el.style.display == 'none') {
Time of Update: 2018-12-08
好了,言歸正傳。話說我在網上找了很多限制文字框的辦法都不盡人意,於是只好自己動手實踐了,實踐出真知嘛,這句話沒錯的。 複製代碼 代碼如下:function chkPrice(obj){ obj.value = obj.value.replace(/[^\d.]/g,""); //必須保證第一位為數字而不是. obj.value = obj.value.replace(/^\./g,""); //保證只有出現一個.而沒有多個. obj.value = obj.value.replace(/\.{2
Time of Update: 2018-12-08
第一遍囫圇吞棗,不求甚解,感覺恍然大悟,結果晚上睡覺一想發現很多問題,什麼都不明白,再看第二遍,發現原來是這樣。過了幾天一用,發現手寫起來原來還是在憑記憶,於是下一遍,下一遍...
Time of Update: 2018-12-08
極簡主義法 荷蘭程式員 Gabor de Mooij 提出了一種比 Object.create ()更好的新方法,他稱這種方法為"極簡主義法"(minimalist approach)。這也是我推薦的方法。 3. 1 封裝 這種方法不使用 this 和 prototype,代碼部署起來非常簡單,這大概也是它被叫做"極簡主義法"的原因。 首先,它也是用一個對象類比"類"。在這個類裡面,定義一個建構函式 createNew (),用來產生執行個體。 複製代碼 代碼如下:var
Time of Update: 2018-12-08
一、前言 本文翻譯自微軟的牛人Scott Allen Prototypes and Inheritance in JavaScript ,本文對到底什麼是Prototype和為什麼通過Prototype能實現繼承做了詳細的分析和闡述,是理解JS OO 的佳作之一。翻譯不好的地方望大家修改補充。 二、本文 JavaScript中的物件導向不同於其他語言,在學習前最好忘掉你所熟知的物件導向的概念。JS中的OO更強大、更值得討論(arguably)、更靈活。 1.類和對象
Time of Update: 2018-12-08
範圍 全域範圍 局部範圍 範圍鏈 執行內容 使用中的物件 閉包 閉包最佳化 JavaScript中出現了一個以前沒學過的概念——閉包。何為閉包?從表面理解即封閉的包,與範圍有關。所以,說閉包以前先說說範圍。 範圍(scope) 通常來說一段程式碼中使用的變數和函數並不總是可用的,限定其可用性的範圍即範圍,範圍的使用提高了程式邏輯的局部性,增強程式的可靠性,減少名字衝突。 全域範圍(Global Scope) 在代碼中任何地方都能訪問到的對象擁有全域範圍,以下幾種情形擁有全域範圍:
Time of Update: 2018-12-08
對象 建立 對象 建構函式 公有、私人、特權、靜態成員 this、call和apply 異常處理 繼承 原型 對象 在JavaScript,可以說everything is object,那麼什麼是對象?對象就是包含一組變數和函數的集合。在其它物件導向語言中對象是由類的執行個體化而來,JavaScript是基於原型的物件導向語言,沒有類的概念,對象派生自現有對象的副本。JavaScript中對象可以分為兩類:Function和Object。 建立對象
Time of Update: 2018-12-08
因為我在寫這文章的時候,百度裡找資料,找到了園友的一篇文章,寫的很好,可是我寫了又不想放棄,所以就在裡面拿了很多東西過來!~~ [翻譯]JavaScript Scoping and Hoisting 希望得到大家諒解。 一。案發現場 我們先看一段很簡單的代碼: 複製代碼 代碼如下:var v='Hello World'; alert(v); 這個沒有疑問吧,彈出“Hello World”。OK,我們繼續。 我們在看一段Code: 複製代碼 代碼如下:var v='Hello World';
Time of Update: 2018-12-08
你知道下面的JavaScript代碼執行後會alert出什麼值嗎? 複製代碼 代碼如下:var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar(); 如果答案是"10"令你感到驚訝的話,那麼下面這個會讓你更加困惑: [/code] var a = 1; function b() { a = 10; return; function a() {} } b(); alert(a); [/code]
Time of Update: 2018-12-08
JavaScript 學習筆記之一jQuery寫法圖片等比縮放以及預先載入 以前對於JavaScript總是在用到的時候在頁面上寫幾個函數,基本沒考慮到函數的封裝與重用,最近有個項目可能對於這方面要求有點高,所以就研究了下類似jQuery的封裝。 這裡就圖片等比縮放以及預先載入的效果來嘗試下,寫寫類似的JavaScript代碼。 圖片等比縮放以及預先載入的效果如下(預先載入效果有時候會不是很明顯): JS主要代碼如下: 複製代碼 代碼如下:(function() { var yQuery = (
Time of Update: 2018-12-08
代碼如下: 複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=" http://www.w3.org/1999/xhtml"> <head>
Time of Update: 2018-12-08
a)滑鼠事件 滑鼠事件也許是web頁面當中最常用到的事件,因為滑鼠是最常用的導航裝置,在DOM3級事件上定義了9個滑鼠事件,分別為: click:當使用者點擊滑鼠主鍵通常是指滑鼠左鍵或按斷行符號鍵時觸發。 dbclick:當使用者雙擊滑鼠主鍵時發生觸發,這個事件並沒有在DOM2級事件中定義但是卻被普遍支援了,後來在DOM3級中得到了標準化。 mousedown:當使用者按下滑鼠任意一個鍵都會觸發,這個事件是不能夠通過鍵盤觸發的。
Time of Update: 2018-12-08
JavaScript區分大小寫:在JavaScript中變數、函數都是區分大小寫,例如: 複製代碼 代碼如下:function myfunction(){}和 function myFunction(){}不同 JavaScript中核心對象Array、Object等也是區分大小寫。 單引號和雙引號:這個問題在學SQLServer拼接字串"select * from page where
Time of Update: 2018-12-08
事件就是使用者或瀏覽器自身執行的某種動作。比如說click,mouseover,都是事件的名字。而相應某個事件的函數就叫事件處理常式(或事件接聽程式)。為事件指定處理常式的方式有好幾種。 一:HTML事件處理常式。 如: 複製代碼 代碼如下:<script type="text/javascript"> function show(){ alert('hello world!'); } </script> <input type="button"
Time of Update: 2018-12-08
這就意味著會有適當的事件冒泡,並且瀏覽器會執行分配的事件處理常式。這種能力在測試web應用程式的時候,是非常有用的,在DOM 3級規範中提供了方法來類比特定的事件,IE9 chrome FF Opera 和 Safari都支援這樣的方式,在IE8及以前的辦法的IE瀏覽器有他自己的方式來類比事件 a)Dom 事件類比 可以通過document上的createEvent()方法,在任何時候建立事件對象,此方法只接受一個參數,既要建立事件對象的事件字串,在DOM2 級規範上所有的字串都是複數形式,
Time of Update: 2018-12-08
1、DOM0級事件處理常式 將一個函數值給一個事件處理常式屬性。 例如: 複製代碼 代碼如下:var btn = document.getElementById("myBtn"); btn.onclick = funtion(){ alert(this.id); //"myBtn" } 刪除事件,btn.onclick = null; --------------------------------------------------------------------------------
Time of Update: 2018-12-08
本節html以下面的為例 複製代碼 代碼如下:<div id="myDiv" class="bd" title="我是div"> <img id="img1" /> <a id="myA" href = "http://www.baidu.com">百度</a> </div> 1.通過HTMLElement類型(對象)的屬性獲得和設定元素特性 複製代碼 代碼如下:var div =