JavaScript 对象链式操作测试代码_js面向对象
程序员文章站
2022-05-23 20:56:07
...
虽然现在慢慢减少了对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源代码还真是有点累。。
但是这链式操作的方式实在吸引人(貌似现在不少新库都采用了链式操作)。
新手无畏嘛,所以写了以下代码。主要是避免以后又忘了,呵呵。
复制代码 代码如下:
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源代码还真是有点累。。
上一篇: php make报错。解决思路
推荐阅读
-
同一页面多个商品倒计时JS 基于面向对象的javascript
-
javascript面向对象的写法(代码教程)
-
Javascript基础回顾之(三) js面向对象
-
JavaScript面向对象学习之类的创建,类的抽象代码实例讲解
-
Jquery操作js数组及对象示例代码
-
前端笔记之JavaScript面向对象(三)初识ES6&underscore.js&EChart.js&设计模式&贪吃蛇开发
-
js面向对象编程/原型链/继承 —— javascript
-
重学js之JavaScript 面向对象的程序设计(创建对象)
-
JavaScript面向对象编程小游戏---贪吃蛇代码实例
-
JavaScript实现简易轮播图最全代码解析(ES6面向对象)