中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      讓你我減少對jQuery的依賴度

      時間:2024-07-21 02:26:35 jQuery Mobile 我要投稿
      • 相關推薦

      讓你我減少對jQuery的依賴度

        雖然現在慢慢減少了對jQuery的使用(項目上還是用,效率高點。平時基本不用了),希望從而減少對jQuery的依賴度。

        但是這鏈式操作的方式實在吸引人(貌似現在不少新庫都采用了鏈式操作)。

        新手無畏嘛,所以寫了以下代碼。主要是避免以后又忘了,呵呵。

        復制代碼 代碼如下:

        window.k = function() {

        return new k.fn.init(arguments);

        }

        k.fn = k.prototype = {

        init:function() {

        this.length = 0;

        //var args = Array.prototype.slice.call(arguments,0);

        Array.prototype.push.apply(this,arguments[0]);

        return this;

        },

        show:function() {

        console.log(Array.prototype.slice.call(this,0).join("$"));

        return this;

        },

        hide:function() {

        console.log(this);

        return this;

        }

        }

        k.fn.init.prototype = k.fn;

        console.log(k("0",1,2,3,4,5).show().hide());

        這只是進行了鏈式操作。但是在firbug下可以看到jQuery對象返回的是數組/類數組。要實現這個卻不知道怎么辦好。。

        總不能讓k.fn.prototype = new Array()吧。真要看jQuery源代碼還真是有點累。。

        下面是針對網友的一些回復

        其實鏈式操作很簡單,就是每次返回操作對象本身,這樣就可以持續的調用該對象本身定義的所有方法了。

        最簡單的例子:

        復制代碼 代碼如下:

        var o = function() {

        /**

        do something

        */

        return this;

        }

        o.prototype = {

        action1: function() {

        /**

        do something

        */

        return this;

        },

        action2: function() {

        /**

        do something

        */

        return this;

        }

        }

        你可以這樣調用:

        new o() //

        .action1() //

        .action2(); //每一步操作返回的都是實例化的o對象

        它其實等同于這樣:

        var a = new o();//如果沒有返回this,那么就不能在這里繼續調用了。因為返回的是undefined。

        a.action1(); //這個時候就只能對a(實例化的o對象的引用)來操作。

        a.action2();

        如果你用過jQuery就應該發現了。jQuery并不需要你使用new來實例化一個對象,在使用的時候顯得更方便。

        所以我們定義另一個對象來封裝上面提到的o對象:

        var k = function() {

        return new o();

        }

        這樣我們就可以這樣調用了:

        k().action1().action2();

        我為你推薦 一個叫 "函數化"的 構造JS的方法。

        復制代碼 代碼如下:

        //加粗表示強調

        //這個方法是 《javascript語言精粹》第52頁 5.4函數化 上的。

        var constructor = function (spec,my){

        var that,其他的私有實例變量;

        my = my || {};

        把共享的變量和函數添加到my中

        that = 一個新對象

        添加給that 的特權方法

        return that;

        }

      【讓你我減少對jQuery的依賴度】相關文章:

      jquery提交按鈕的代碼03-30

      jQuery程序設計03-30

      如何理解jquery事件冒泡03-29

      jQuery的DOM操作筆記03-29

      淺析jQuery 遍歷函數javascript03-29

      jQuery中prev()方法用法03-30

      jQuery中replaceAll()方法用法03-30

      基于jQuery的固定表格頭部的代碼03-30

      jQuery 源碼分析和Ready函數03-29

      主站蜘蛛池模板: 国产精品黑丝亚洲自拍导航| 日本一区二区三区小视频| 99成人无码精品视频| 五月天婷婷一区二区三区久久| 久久综合给合久久狠狠狠9| 免费在线日韩| 海林市| 曲阳县| 亚洲欧洲日产国码无码av野外| 亚洲一区二区在线观看网站| 日本一区二区久久精品亚洲中文无| 91久国产在线观看| 国产一区二区三区亚洲精品| 国产传媒在线视频| 武宁县| 久久久久亚洲AV片无码乐播| 日本牲交精品一区二区三区| 国产69精品一区二区三区| 日本成熟妇人高潮aⅴ| 国产激情视频免费观看| 全南县| 日本成熟妇人高潮aⅴ| 国产午夜激情视频自拍| 仙桃市| 亚洲一区二区久久青草| 亚洲欧美另类日本久久影院| 称多县| 牡丹江市| 国产毛片三区二区一区| 精品一区二区三区色噜噜| 日韩中文字幕在线乱码| 久久精品国产亚洲AV高清wy| 亚洲国产精品性色av| 日韩精品不卡一区二区三区| 99熟妇人妻精品一区五一看片| 淫欲一区二区中文字幕| 午夜日韩成年人视频在线观看| 音影先锋色天堂av电影妓女久久| 少妇久久久被弄到高潮| 狠狠躁夜夜躁人人爽天天不卡| 久久精品国产亚洲AV香蕉吃奶|