jquery.extend = jquery.fn.extend = function() ;我們可以用$.extend去擴充套件自定義的物件,如:
var myself = ;通過$.extend為物件myself新增了setname方法。但這裡主要討論$.extend如何構建jquery庫的。不知注意到上面**中jquery.extend和jquery.fn.extend是同乙個函式。我們瀏覽下jquery庫,發現有些方法是通過呼叫jquery.extend擴充套件的,有的則是通過呼叫jquery.fn.extend擴充套件的。下面分別討論:$.extend(myself, });
myself.setname("tom");
1,通過jquery.extend擴充套件
我們知道jquery.extend中的jquery型別是function,即typeof jquery值為字串「function」。如果把jquery當成乙個類,jquery.extend相當於為該類新增了靜態方法extend。靜態方法是不需要new乙個例項再去呼叫的,通過「類名+方法名」直接呼叫。即jquery.extend(...),jquery又被賦值給$。因此我們更習慣$.extend(...)。
原始碼中直接呼叫jquery.extend方法,只傳乙個引數。如下:
jquery.extend(,我們知道extend中如果只傳乙個引數,那麼將執行該句:...});
target = this;即擴充套件自己,而這裡的this則是function jquery。也就是說給function jquery新增了許多靜態方法,這些方法都可以直接通過jquery.xx(或$.xx)方式來呼叫,而不是先執行(呼叫)jquery方法再去呼叫xx,如$("#id").xx。也許下面這個例子更容易理解:
function fun(){}//定義乙個類(函式)因此,jquery中的isfunction, isarray, trim等都是靜態方法,只能通過$.isfunction, $.isarray, $.trim來呼叫。而不能通過$("...").isfuction, $("...").isarray, $("...").trim呼叫。//為該類(函式)新增乙個靜態方法extend
fun.extend=function(obj)
//呼叫extend為該類新增了靜態屬性name,靜態方法method1
fun.extend(});
//輸出name,prototype,extend,method1
console.dir(fun)
2,通過jquery.fn.extend擴充套件
jquery.fn等於jquery.prototype,也就是說給function jquery的原型(prototype)上掛了個extend方法。通過呼叫jquery.fn.extend(object)來擴充套件時(注意只傳乙個引數object),extend函式中仍然會執行
target = this;
function fun(){}//定義乙個類(函式)因此擴充套件的屬性或方法都新增到jquery物件上了。//給該類原型上新增乙個方法extned
fun.prototype.extend = function(obj)
//呼叫extend方法給fun.prototype上新增屬性,方法
fun.prototype.extend(})
//輸出name,extend,method1
console.dir(new fun())
如bind, one, unbind等可以通過$("...").bind, $("...").one, $("...").unbind方式呼叫。卻不能通過 $.bind, $.one, $.unbind方式呼叫。
jquery庫與prototype庫一樣都是通過extend方法擴充套件出整個庫的。相對來說jqueyr的擴充套件方式更難理解一些。
總結如下:
a,jquery.extend()是給function jquery新增靜態屬性或方法
b,jquery().extend()是給jquery物件新增屬性或方法。
ps:這裡的jquery即為$。
jQuery兩種擴充套件
如下 如下 jquery.extend jquery.fn.extend function 我們可以用 extend去擴充套件自定義的物件,如 如下 var myself extend myself,myself.setname tom 通過 extend為物件myself新增了setname方法。...
PHP的兩種擴充套件庫介紹
pear pecl都是php擴充套件模組的集合。擴充套件php有兩種方法 一種是用純粹的php 寫函式和類。pear在英文中是梨子的意思。pear將php程式開發過程中常用的功能編寫成類庫,涵蓋了頁面呈面 資料庫訪問 檔案操作 資料結構 快取操作 網路協議等許多方面,使用者可以很方便地使用。它是乙個...
php擴充套件庫兩種安裝方式
pecl擴充套件庫是通過pear 打包系統來的 php 擴充套件庫倉庫。pecl命令類似centos的yum工具。php的擴充套件庫可以通過pecl工具進行安裝,也可進行原始碼編譯安裝。比如我們要安裝擴充套件庫solr,樣例如下 pecl install solr 2.4.0.tgz 2 原始碼安裝...