偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

大致說(shuō)明JQuery源碼研究說(shuō)明

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

時(shí)代在發(fā)展技術(shù)也在提高,JQuery源碼陣營(yíng)里面出現(xiàn)了越來(lái)越多的優(yōu)秀的框架,大大簡(jiǎn)化了我們的開發(fā)工作,在我們使用這些框架的時(shí)候是不是也應(yīng)該飲水思源想想它們都是怎樣構(gòu)建起來(lái)的呢?

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

我們從最開始的說(shuō)起:
首先構(gòu)造一個(gè)對(duì)象給使用者,假定我們這個(gè)框架叫 Shaka   ( 俺的名字;) var Shaka = function(){}; 這里我們創(chuàng)建了一個(gè)空函數(shù),里面什么也沒(méi)有,這個(gè)函數(shù)實(shí)際上就是我們的構(gòu)造函數(shù)。為了讓我們生成的對(duì)象能夠調(diào)用在prototype里定義出來(lái)的方法。

我們需要用原型的方式(把Shaka當(dāng)作是一個(gè)類)給Shaka添加一些方法,于是定義:
Shaka.fn =  Shaka.prototype = {}; 這里的Shaka.fn相當(dāng)于Shaka.prototype的別名,方便以后使用,JQuery源碼指向同一個(gè)引用。OK,我們添加一個(gè)sayHello的方法, 給Shaka添加一個(gè)參數(shù),這樣這個(gè)框架最基本的樣子已經(jīng)有了,如果它有生命的話那么它現(xiàn)在是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> 

好啦,先別激動(dòng), 我們注意到這個(gè)框架跟jQuery在使用上是有一些差別的, 比如在jq 中我們可以這樣寫jQuery('#myid').someMethod(); 這是怎樣做到的呢, 也就是說(shuō) jQuery()這個(gè)構(gòu)造函數(shù)返回了一個(gè)jQuery的對(duì)象實(shí)例,因此我們可以在上面調(diào)用它的方法,所以Shaka的構(gòu)造函數(shù)應(yīng)該返回一個(gè)實(shí)例,它看起來(lái)應(yīng)該是這個(gè)樣子。

var Shaka = function(){ return //返回Shaka的實(shí)例; }; 那么我們要如何取得一個(gè)Shaka的實(shí)例呢, 我們先來(lái)回顧一下使用prototype方式來(lái)模擬類的時(shí)候 var someObj = new  MyClass(); 這個(gè)時(shí)候?qū)嶋H上是創(chuàng)建一個(gè)新對(duì)象JQuery源碼,把新對(duì)象作為this指針,調(diào)用 MyClass函數(shù),即類的構(gòu)造函數(shù), 然后 someObj 就獲得了在 MyClass.prototype里面定義的方法, 這些方法內(nèi)的this指針指當(dāng)前對(duì)象實(shí)例。

責(zé)任編輯:chenqingxiang 來(lái)源: CSDN
相關(guān)推薦

2009-12-11 14:01:10

VS 6.0

2009-12-21 10:01:05

Oracle技術(shù)

2010-01-05 14:09:33

JSON數(shù)組

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數(shù)據(jù)異常

2010-01-08 16:06:33

C++中struct

2010-01-04 10:33:08

ADO DataSet

2010-01-07 17:33:17

JSON 對(duì)象

2010-01-07 18:19:01

JSON異步

2010-01-12 10:21:42

C++語(yǔ)言

2010-02-22 15:13:01

Python模塊

2009-12-29 16:56:40

ADO.NET類和接口

2010-02-02 17:08:26

Python靜態(tài)編譯器

2010-02-02 17:08:26

Python靜態(tài)編譯器

2010-02-03 13:27:17

Python 特性

2010-01-05 10:30:28

ADO.NET數(shù)據(jù)庫(kù)連

2009-12-14 17:57:21

NET 源碼

2009-12-28 09:26:09

ADO對(duì)象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)