讓你我減少對jQuery的依賴度
雖然現在慢慢減少了對jQuery的使用(項目上還是用,效率高點。平時基本不用了),希望從而減少對jQuery的依賴度。
但是這鏈式操作的方式實在吸引人(貌似現在不少新庫都採用了鏈式操作)。
新手無畏嘛,所以寫了以下代碼。主要是避免以後又忘了,呵呵。
複製代碼 代碼如下:
window.k = function() {
return new (arguments);
}
= otype = {
init:function() {
th = 0;
//var args = (arguments,0);
y(this,arguments[0]);
return this;
},
show:function() {
((this,0)("$"));
return this;
},
hide:function() {
(this);
return this;
}
}
otype = ;
(k("0",1,2,3,4,5)()());
這只是進行了鏈式操作。但是在firbug下可以看到jQuery對象返回的.是數組/類數組。要實現這個卻不知道怎麼辦好。。
總不能讓otype = new Array()吧。真要看jQuery源代碼還真是有點累。。
下面是針對網友的一些回覆
其實鏈式操作很簡單,就是每次返回操作對象本身,這樣就可以持續的調用該對象本身定義的所有方法了。
最簡單的例子:
複製代碼 代碼如下:
var o = function() {
/**
do something
*/
return this;
}
otype = {
action1: function() {
/**
do something
*/
return this;
},
action2: function() {
/**
do something
*/
return this;
}
}
你可以這樣調用:
new o() //
on1() //
on2(); //每一步操作返回的都是實例化的o對象
它其實等同於這樣:
var a = new o();//如果沒有返回this,那麼就不能在這裏繼續調用了。因爲返回的是undefined。
on1(); //這個時候就只能對a(實例化的o對象的引用)來操作。
on2();
如果你用過jQuery就應該發現了。jQuery並不需要你使用new來實例化一個對象,在使用的時候顯得更方便。
所以我們定義另一個對象來封裝上面提到的o對象:
var k = function() {
return new o();
}
這樣我們就可以這樣調用了:
k()on1()on2();
我爲你推薦 一個叫 "函數化"的 構造JS的方法。
複製代碼 代碼如下:
//加粗表示強調
//這個方法是 《javascript語言精粹》第52頁 5.4函數化 上的。
var constructor = function (spec,my){
var that,其他的私有實例變量;
my = my || {};
把共享的變量和函數添加到my中
that = 一個新對象
添加給that 的特權方法
return that;
}
相關文章
-
關於jquery插件jTimer(jquery定時器)使用方法
複製代碼 代碼如下:(function ($) {$nd({timer: function (action,context,time) {var _timer;if ($nction(action)) {(function () {_timer = setInterval(function () {if (!action(context)) {clearInterval(_time -
關於jQuery學習筆記之jQuery的動畫
一.系統預定義的動畫函數1.顯示隱藏函數show(); //顯示元素(同時增加寬、高、不透明度)hide(); //隱藏元素執行hide()隱藏界面元素,相當於將css樣式中的display:none.我們也可以在函數中加入參數,具體如下:show("slow"); -
關於jQuery學習筆記之jQuery的分析
一天又結束了,一定有不少感想,因此我們要寫好日記了。在寫之前,要先考慮好內容和結構喔!以下是小編收集整理的暑假日記國小日記5篇,歡迎大家分享。暑假日記國小日記 篇1暑假日記(一)今天,我要去科技管玩。早上我和姐姐乘着媽 -
jQuery(js)如何獲取文字寬度(顯示長度)
今天遇到了獲取文字寬度的問題,查了很久,終於在一個國外網站上找到了方法,但是不能直接使用,於是修改了一下,成功使用到了項目中,在這裏分享給大家。首先在body標籤最後添加一個子標籤:複製代碼 代碼如下:test然後添加相應的 -
jQuery對公司的影響
在日常學習、工作和生活中,大家一定都接觸過作文吧,作文是通過文字來表達一個主題意義的記敘方法。怎麼寫作文才能避免踩雷呢?以下是小編爲大家整理的寫綠蘿的作文,歡迎閱讀,希望大家能夠喜歡。寫綠蘿的作文1大自然無比奇 -
jquery中EasyUI同步樹的實現代碼
首先這款短髮波波頭髮型設計十分修顏瘦臉,碎髮劉海配合着內扣的髮尾勾勒出精緻的小臉蛋,時尚的染髮設計更襯膚色,將短髮波波頭打造出微蓬鬆的造型設計更顯氣質感,加上美美的鎖骨更是迷人。這款女生短髮波波頭髮型十分時尚 -
JQuery EasyUI教程
1.什麼是JQuery EasyUIjQuery EasyUI是一組基於JQuery的UI插件集合,而JQueryEasyUI的目標就是幫助開發者更輕鬆的打造出功能豐富並且美觀的UI界面。開發者不需要編寫複雜的JavaScript,也不需要對css樣式有深入的'瞭解, -
jQuery 源碼分析和Ready函數
這個功能在 jQuery的文檔中提到了三種等價的形式:複製代碼 代碼如下:// 定義在y$(document)y(handler);// 和上一個是同一個,不推薦$()y(handler);// 單獨在jQuery對象中處理$(handler);// 以上這個形式的定義:if(nction -
JQuery設置iframe的src值
草帽的邊緣是由六朵同樣大小的花朵構成的,每朵花的折法相同。因此,教程的前半部分我主要演示一朵花的折法。後半部分,則需要折出六朵花。正六邊形紙,每邊分成六等分。主要材料:彩紙所需工具:剪刀製作步驟:第1步:如圖所示折出 -
jQuery中:eq()選擇器的用法實例
本文實例講述了jQuery中:eq()選擇器用法。分享給大家供大家參考。具體分析如下:此選擇器匹配一個給定索引值的元素。元素的位置索引從0算起。語法結構:複製代碼 代碼如下:$(":eq(index)")此選擇器一般也要和其他選擇器