成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大致說明JQuery源碼研究說明

開發 開發工具
如果你不滿足于僅僅是使用一些現成的JQuery源碼,而是深入了解它們內部的實現機制(照某人的說法, API是貶值最快,最好的辦法就是閱讀它們的源代碼了,前提是你讀得懂。

時代在發展技術也在提高,JQuery源碼陣營里面出現了越來越多的優秀的框架,大大簡化了我們的開發工作,在我們使用這些框架的時候是不是也應該飲水思源想想它們都是怎樣構建起來的呢?

最近兩天研究了一下JQuery源碼,在這里將本人一些粗淺認識分享出來,不當之處請各位指正。好了,下面我們就來看看jQuery大概是怎樣工作的,我假定你已經具備了一些基本的javascript知識,如果基礎不夠俺推薦你閱讀《JavaScript高級程序設計》和《悟透JavaScript》這兩本書。本文不適合對js里面的類、對象、函數、prototype等概念沒有了解的朋友。#t#

我們從最開始的說起:
首先構造一個對象給使用者,假定我們這個框架叫 Shaka   ( 俺的名字;) var Shaka = function(){}; 這里我們創建了一個空函數,里面什么也沒有,這個函數實際上就是我們的構造函數。為了讓我們生成的對象能夠調用在prototype里定義出來的方法。

我們需要用原型的方式(把Shaka當作是一個類)給Shaka添加一些方法,于是定義:
Shaka.fn =  Shaka.prototype = {}; 這里的Shaka.fn相當于Shaka.prototype的別名,方便以后使用,JQuery源碼指向同一個引用。OK,我們添加一個sayHello的方法, 給Shaka添加一個參數,這樣這個框架最基本的樣子已經有了,如果它有生命的話那么它現在是1歲, 看代碼:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
  2. <html> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. </head> 
  6. <body> 
  7. <script type="text/javascript"> 
  8. var Shaka = function(age){ this.age = age; };  
  9. ShakaShaka.fn = Shaka.prototype = { sayHello: function() { alert('I am a little baby, my age is ' + this.age + ' years old.'); }};  
  10. var babyShaka = new Shaka(1);  
  11. babyShaka.sayHello();  
  12. </script> 
  13. </body> 
  14. </html> 

好啦,先別激動, 我們注意到這個框架跟jQuery在使用上是有一些差別的, 比如在jq 中我們可以這樣寫jQuery('#myid').someMethod(); 這是怎樣做到的呢, 也就是說 jQuery()這個構造函數返回了一個jQuery的對象實例,因此我們可以在上面調用它的方法,所以Shaka的構造函數應該返回一個實例,它看起來應該是這個樣子。

var Shaka = function(){ return //返回Shaka的實例; }; 那么我們要如何取得一個Shaka的實例呢, 我們先來回顧一下使用prototype方式來模擬類的時候 var someObj = new  MyClass(); 這個時候實際上是創建一個新對象JQuery源碼,把新對象作為this指針,調用 MyClass函數,即類的構造函數, 然后 someObj 就獲得了在 MyClass.prototype里面定義的方法, 這些方法內的this指針指當前對象實例。

責任編輯:chenqingxiang 來源: CSDN
相關推薦

2009-12-11 14:01:10

VS 6.0

2009-12-21 10:01:05

Oracle技術

2010-01-05 14:09:33

JSON數組

2009-12-11 09:42:00

Visual Stud

2009-12-21 17:29:43

ADO.NET模型

2009-12-15 17:02:29

Vs.Net 2010

2010-01-07 09:31:27

Json數據異常

2010-01-08 16:06:33

C++中struct

2010-01-04 10:33:08

ADO DataSet

2010-01-07 17:33:17

JSON 對象

2010-01-07 18:19:01

JSON異步

2010-01-12 10:21:42

C++語言

2010-02-22 15:13:01

Python模塊

2009-12-29 16:56:40

ADO.NET類和接口

2010-02-02 17:08:26

Python靜態編譯器

2010-02-02 17:08:26

Python靜態編譯器

2010-02-03 13:27:17

Python 特性

2010-01-05 10:30:28

ADO.NET數據庫連

2009-12-14 17:57:21

NET 源碼

2010-03-16 15:12:44

光纖交換機
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区免费视频 | 亚洲视频在线观看 | 偷拍自拍网站 | 在线播放国产一区二区三区 | 久久国产精品视频 | 永久av| 亚洲国产精品日韩av不卡在线 | 欧美精品一区二区在线观看 | 亚洲精品一区二区三区四区高清 | 99成人免费视频 | 欧美二区在线 | 成年网站在线观看 | 国产美女精品视频 | 中文字幕的av | 欧美精品一区二区三区在线 | 国产一区二区三区视频免费观看 | 一级欧美一级日韩片 | 婷婷综合色 | 插插宗合网 | 亚洲入口 | 欧美精品一区在线 | 玖玖玖在线 | 国产a区| 国产精品美女久久久久久久网站 | 日韩精品久久久 | 久久久久久国产精品 | 日本不卡在线视频 | 免费激情av | 手机av在线 | 欧美激情欧美激情在线五月 | 久久精品国产亚洲 | 久久精品国产久精国产 | 国产高清免费视频 | 色综合久久天天综合网 | 国产亚韩| 国产精品精品久久久 | 日韩在线精品视频 | 99久久日韩精品免费热麻豆美女 | 久久视频精品 | 亚洲成人一区 | 亚洲精品久 |