网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文

让你我减少对jQuery的依赖度

栏目: 网页设计 / 发布于: / 人气:1.58W

虽然现在慢慢减少了对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;

}

Tags:Jquery 依赖度