亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

jQuery Mobile

讓你我減少對jQuery的依賴度

時間:2024-09-21 04:56:20 jQuery Mobile 我要投稿
  • 相關推薦

讓你我減少對jQuery的依賴度

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

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

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

  復制代碼 代碼如下:

  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對象返回的是數(shù)組/類數(shù)組。要實現(xiàn)這個卻不知道怎么辦好。。

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

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

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

  最簡單的例子:

  復制代碼 代碼如下:

  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(); //每一步操作返回的都是實例化的o對象

  它其實等同于這樣:

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

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

  a.action2();

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

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

  var k = function() {

  return new o();

  }

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

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

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

  復制代碼 代碼如下:

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

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

  var constructor = function (spec,my){

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

  my = my || {};

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

  that = 一個新對象

  添加給that 的特權方法

  return that;

  }

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

寶潔供應鏈通過優(yōu)化減少庫存案例解析04-04