<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 讓你我減少對(duì)jQuery的依賴度

    時(shí)間:2024-07-21 02:26:35 jQuery Mobile 我要投稿
    • 相關(guān)推薦

    讓你我減少對(duì)jQuery的依賴度

      雖然現(xiàn)在慢慢減少了對(duì)jQuery的使用(項(xiàng)目上還是用,效率高點(diǎn)。平時(shí)基本不用了),希望從而減少對(duì)jQuery的依賴度。

      但是這鏈?zhǔn)讲僮鞯姆绞綄?shí)在吸引人(貌似現(xiàn)在不少新庫都采用了鏈?zhǔn)讲僮鳎?/p>

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

      復(fù)制代碼 代碼如下:

      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());

      這只是進(jìn)行了鏈?zhǔn)讲僮鳌5窃趂irbug下可以看到j(luò)Query對(duì)象返回的是數(shù)組/類數(shù)組。要實(shí)現(xiàn)這個(gè)卻不知道怎么辦好。。

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

      下面是針對(duì)網(wǎng)友的一些回復(fù)

      其實(shí)鏈?zhǔn)讲僮骱芎?jiǎn)單,就是每次返回操作對(duì)象本身,這樣就可以持續(xù)的調(diào)用該對(duì)象本身定義的所有方法了。

      最簡(jiǎn)單的例子:

      復(fù)制代碼 代碼如下:

      var o = function() {

      /**

      do something

      */

      return this;

      }

      o.prototype = {

      action1: function() {

      /**

      do something

      */

      return this;

      },

      action2: function() {

      /**

      do something

      */

      return this;

      }

      }

      你可以這樣調(diào)用:

      new o() //

      .action1() //

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

      它其實(shí)等同于這樣:

      var a = new o();//如果沒有返回this,那么就不能在這里繼續(xù)調(diào)用了。因?yàn)榉祷氐氖莡ndefined。

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

      a.action2();

      如果你用過jQuery就應(yīng)該發(fā)現(xiàn)了。jQuery并不需要你使用new來實(shí)例化一個(gè)對(duì)象,在使用的時(shí)候顯得更方便。

      所以我們定義另一個(gè)對(duì)象來封裝上面提到的o對(duì)象:

      var k = function() {

      return new o();

      }

      這樣我們就可以這樣調(diào)用了:

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

      我為你推薦 一個(gè)叫 "函數(shù)化"的 構(gòu)造JS的方法。

      復(fù)制代碼 代碼如下:

      //加粗表示強(qiáng)調(diào)

      //這個(gè)方法是 《javascript語言精粹》第52頁 5.4函數(shù)化 上的。

      var constructor = function (spec,my){

      var that,其他的私有實(shí)例變量;

      my = my || {};

      把共享的變量和函數(shù)添加到my中

      that = 一個(gè)新對(duì)象

      添加給that 的特權(quán)方法

      return that;

      }

    【讓你我減少對(duì)jQuery的依賴度】相關(guān)文章:

    jquery提交按鈕的代碼03-30

    jQuery程序設(shè)計(jì)03-30

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

    jQuery的DOM操作筆記03-29

    淺析jQuery 遍歷函數(shù)javascript03-29

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

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

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

    jQuery 源碼分析和Ready函數(shù)03-29

    主站蜘蛛池模板: 囯产精品一区二区三区线| 欧美亚洲综合免费精品高清在线观看| 99re66在线观看精品免费| 久久精品中文字幕无码绿巨人 | 久久99国产精品99久久| 亚洲欧美激情精品一区二区| 国产精品视频色视频| 久久久久夜夜夜精品国产| 国产精品成人观看视频国产奇米 | 亚洲日韩中文在线精品第一| 国产精品自产拍高潮在线观看| 国产精品美女久久久久网| 精品蜜臀久久久久99网站| 亚洲欧美精品午睡沙发| 久久久精品久久久久久| 国产精品粉嫩美女在线观看| 91精品婷婷国产综合久久| 日本精品久久久久中文字幕| 国产精品欧美日韩| 国产精品欧美久久久天天影视| 500av导航大全精品| 成人精品视频99在线观看免费| 精品国产三级a∨在线| 久久国产精品无码HDAV| 久久精品人人做人人爽电影蜜月| 无码精品视频一区二区三区| 亚洲精品乱码久久久久久中文字幕| 欧美在线精品永久免费播放| 久久久久无码国产精品不卡| 精品人妻无码专区中文字幕| 精品人妻V?出轨中文字幕| 精品欧美一区二区在线看片| 精品国产综合区久久久久久| 精品国偷自产在线视频| 国产精品伦理久久久久久| 91久久福利国产成人精品| 9999国产精品欧美久久久久久| 国产精品 一区 在线| 国产欧美在线观看精品一区二区| 国内精品久久久久久久影视麻豆| 久久久久久国产精品免费免费|